我可以使用C(不是C ++ !!!)进行面向对象编程吗?
答案 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;
}
}
...