作者:王言 | 来源:互联网 | 2023-05-17 18:53
如果我们熟悉C中的结构体的话,理解C++中的类是很容易的。在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。我们先来看一下C++中的结构体和类的异同之处:
如果我们熟悉C中的结构体的话,理解C++中的类是很容易的。在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。我们先来看一下C++中的结构体和类的异同之处:
一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;
二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。在所有的面向过程的程序思想中,算法和数据结构是分离的,而在面向对象的程序思想中,算法和数据结构是紧密结合在一起的。瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth)曾提出“程序=数据结构+算法”这一著名公式,实际上到了面向对象程序设计思想中,这一公式应该是“程序=(数据结构+算法)”,因为算法和数据结构是一个整体。任何算法都是针对特定的数据结构的。而且在面向对象程序设计中,我们可以这样来理解:
对象=(算法+数据结构)
程序=(对象+对象+...)
算法和数据结构被捆绑成一个类,而对象又是类的实例化。