C++不是完全OOP语言吗?

3 c++

我知道在OOP中我们必须像Java一样在类中声明所有内容,例如变量,函数等,但在C++中我们也可以在类外声明.

这就是C++不完全是OOP的原因吗?还是还有别的吗?

unw*_*ind 14

咦?C++是一种混合的,多范式的语言.它当然不是一种"纯粹的"面向对象语言,"一切都是对象"都是正确的.C++支持类,对象,封装等,但由于它(或多或少)向后兼容大量C代码,因此它不能"完全面向对象".


Deg*_*vik 7

面向对象编程不是语言的定义,而是编程的定义,程序.也就是说,C++中的一个程序可以是OOP,而其他程序可以不是OOP.

您可以说C++完全支持OOP范例中的编程方式.


Mar*_*ort 6

完全定义OOP?可能有很多人的意见

请注意,就纯度而言,IIRC所有具有值类型的语言在严格意义上都不是"纯粹的".不,拳击不算数.

多年来,在讨论中我试图回到核心OOP功能:

  • 身分
  • 分类
  • 多态(不是继承,因为一些OOP没有继承)
  • 封装

因此,如果您可以判断两个类是否不是同一个类(标识),您可以制作经典的"鸭子嘎嘎"和"狗吠"示例(以演示继承/多态和分类)并且您可以隐藏字段,您很漂亮在那里.

将它应用于所有语言更加困难.虽然我粗略地进行了函数式编程,但是我没有用他们近乎无限的术语来训练所有那些正在兴起的函数式oop-imperative混合体,

  • 我甚至会猜测意见>人.;) (7认同)