我可以使用C进行面向对象编程吗?

时间:2012-02-10 08:31:04

标签: c oop

  

可能重复:
  Can you write object oriented code in C?

我可以使用C(不是C ++ !!!)进行面向对象编程吗?

4 个答案:

答案 0 :(得分:1)

是的!面向对象编程是一件好事,在C中非常非常可能。

创建对象不仅限于C ++或任何其他语言。使用C ++和其他第四代语言,数据隐藏更容易,并且拥有自动清理的语言使编程更容易。但!让程序员的生活变得更轻松总是需要管理费用。

使用指向结构的指针是在C中实现OOP的一种简单方法。链接列表立即浮现在脑海中。对于(语音)邮件系统,您可以拥有一个“包含”消息结构的邮箱结构(当然还有邮箱自己的数据)。隐藏消息的实现很容易;所有你必须知道的是,消息有指向其邮箱,上一条消息和下一条消息的指针。当然,您知道某些功能可以在邮箱上运行,而另一组功能可以使用邮件。

C ++在OOP方面的优势在于C ++可以轻松地将方法(实际指向它们!)放入对象中。事实上,这些方法只是对象的特例....

答案 1 :(得分:0)

我总是觉得你做不到。这就是为什么:C ++最初被称为“C with Objects”。实际上,可能有一种方法可以假冒OOP C,但我不认为这是严格的100%OOP。

尽管

,但更多的人才能澄清这一点

答案 2 :(得分:0)

有一本书:“使用ANSI-C进行面向对象的编程”。

答案 3 :(得分:0)

这是一个纪律问题,你必须建立自己的框架并坚持下去。

你将拥有大量的“语法糖”,并且你不会拥有精心设计的OOP语言所具有的表达之美。但是,你可以。

即使是多态也是可能的,但你必须自己编写和维护适当的代码。

STRING to_string(OBJECT o)
{
  switch get_class(o) {
    case CLASS_OBJECT:
      return "object";
      break;
    default:
      return "something";
      break;
  }
}

...