我一直听说C++不是面向对象而是"C with Classes".所以,当我向面试官提到C++并不是真正的面向对象时,他问我为什么不认为它是一种OO语言.自从大学以来我没有做过任何C++,而且我没有太多答案.C++是否面向对象?为什么?
Dre*_*all 74
C++通常被认为是一种"多范式"语言.也就是说,您可以将它用于面向对象,程序甚至函数式编程.
那些否认C++是OO的人通常会对原始类型本身不是对象的事实感到满意.按照这个标准,Java也不会被认为是OO.
毫无疑问,C++不像Smalltalk,Ruby,Self等那样具有OO,但它绝对是大多数标准的有效OO语言.
Jac*_*cob 19
C++是一种面向对象的语言.问题是某些语言狂热者有自己的,有时相互矛盾的OOP定义.例如,一些Java人员说C++不是OOP语言,因为您可以在类之外定义函数.
只是忽略它们.
pax*_*blo 16
呸! 那些说C++不是面向对象的人就是那些说Spam不是食物的人:-)
OO"宗教疯狂"人群会说,如果绝对一切都是对象,你只能拥有真正的OO语言.没关系,他们可以坐在象牙塔里,相信他们想要的东西.我们中的一些人有实际的工作要做.
如果你使用对象思维模式,C++(如果你在结构中使用各种函数指针的技巧,甚至是C语言)就足以被认为是面向对象的.
Nem*_*vic 12
咩.每个人都有自己的OOP定义.发明OOP一词的Alan Kay说:http://www.noulakaz.net/weblog/2007/02/12/true-meaning-of-oop/
OOP对我来说意味着只有消息传递,本地保留和保护以及隐藏状态进程,以及所有事物的极端后期绑定.它可以在Smalltalk和LISP中完成.可能还有其他可能的系统,但我不知道它们.
根据该定义,即使Java,C#,Python等也不是OO语言.
恕我直言,这些讨论毫无意义.
面向对象的标志是抽象,封装,多态和继承.
我会说C++展示了所有这四个,所以它有资格作为面向对象的语言.
将C++写成"更好的C"并使用纯粹的程序风格是可能的.对象不是强制要求的.也许这就是你的想法.
C++是一种OO语言.
但这并不是C++可以使用的唯一编码方式.n因此,C++在技术上是一种多范式语言,其中OO只是一种范式.
术语"C with classes"有几个含义.
归档时间: |
|
查看次数: |
40465 次 |
最近记录: |