我正在与一位同事谈论C和C++,他声称C是面向对象的,但我声称它不是.我知道你可以在C中做类似面向对象的事情,但C++是一种真正的面向对象语言.
你的想法是什么?
此外,它引发了关于谁决定面向对象意味着什么的讨论,并且很难说出面向对象的真正意义.你对此有何看法?
Jam*_*lis 61
如果"是C面向对象?" 你的意思是"C是否设计了专门用于支持面向对象编程的设施?" 那么,不,C显然不是面向对象的.
Tim*_*son 19
您可以使用或多或少的任何语言以面向对象的方式进行编程.(我认为运行时多态 - 即虚方法 - 需要一种支持函数指针的语言.)
以下是几个例子:
Not*_*tMe 10
C不是面向对象的.这就是++背后的全部目的
至于面向对象需要什么的定义:检查维基百科.
就个人而言,如果它支持继承,封装和多态,那么你的好处就是去.这里的另一个关键是拥有像class和object这样的好关键词有助于......
面向对象的真实语言(非结论性)的例子有:Smalltalk,Java,c#,Python,Ruby,C++ ..
此外,还可以扩展以提供PHP,Perl,VB(非.Net)等OO功能,......
真正的程序员可以用任何语言编写面向对象的代码.
但不,C不是一种"面向对象"的语言.它没有类,对象,多态,继承的概念.
答案可以是 yes 或 no,具体取决于:
如果你问“C 是一种面向对象的语言吗?” ,答案是否定的,因为它没有面向对象的构造函数、关键字、语义等......
如果您打算“我可以在 C 中实现 OOP 吗?” ,答案是肯定的,因为OOP不仅是一种语言的要求,也是一种“思考”的方式,一种编程的方法,在接触某种语言之前。然而,在 C(或任何其他并非本机设计为 OOP 的语言)中实现 OOP 肯定会“强制”并且比任何其他 OOP 语言更难以管理,因此也应该有一些限制。