我读到有关Small Talk完全面向对象编程的文章。那么,C++也是完全面向对象编程吗?如果不是,为什么呢?
不是这样的。即使一次都不使用对象,你也可以编写出有效、良好编码、风格优美的C++程序。
C++支持面向对象编程,但面向对象并不是该语言本质上的特性。实际上,main函数并不是一个对象的成员。
在Smalltalk或Java中,你至少需要一个类才能系鞋带(或者输出“Hello, world”)。
当然,有人可能会争论Java也是完全面向对象的语言,因为它的基本类型(比如int)不是对象。
C++包含'C'方言作为子集,允许纯过程式编码风格。
main()
函数,并且并不是所有东西都是对象(如int
、long
等)。main()
函数作为类的静态方法,所以它更接近“纯”面向对象,但它仍然有非对象的部分。定义OOL。如果你的意思是使用类等,那么C++支持面向对象编程的OO-style,除此之外还有其他方式。你可以选择不使用类。而Java则不允许除了类以外的方式。(是的,我知道Java也支持FP。)
C++并非纯面向对象编程语言,正如先前提到的那样,没有任何强制使用OOP概念的规定。C++是一种混合面向对象编程语言,因为它基于纯过程式语言C。
纯面向对象编程语言的例子包括C#和JAVA。
不,它不是一种纯面向对象的语言。特别是在C++中,原始数据类型的规则通常与非原始数据类型不同。此外,还可以有与任何数据类型都没有关联的函数。C++不是纯面向对象语言的其他方式有很多,但这是其中最重要的两个原因之一。
Java和C#也不是纯面向对象的语言,因为它们具有原始数据类型,这些数据类型不遵守与“对象”数据类型相同的语义。
当然不会!!它支持内置数据类型。
C++不过是“带类的C语言”。我仍然可以编写一个C程序并将其保存为.cpp文件。因此,推论证明“C++不是一种纯粹的面向对象的语言。”