相信有一点专业知识的人都知道,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。在很大程度上,标准C++是标准C的超集。实际上,所有C程序也是C++程序,然而,两者之间有少量区别。下面是最重要的区别:
结构是C的一部分,C++从C中继承了结构,在语法上,类与结构十分相似,在关系上,这两者也很接近,在C++中,结构的作用被拓宽了,进而使结构成为了类的一种替代方法。实际上,类与结构的惟一区别在于:在默认状态下,结构的所有成员均是公有的,而类的所有成员是私有的。除此之外,类与结构是等价的,也就是说,一个结构定义了一个类的类型。
C++同时包含这两个等价的关键字struct与class基于3个方面的原因。第一,加强结构的能力。在C中,结构提供了一种数据分组方法,因而让结构包含成员函数是一个小小的改进。第二,由于类与结构是相互关联的,所有现有C代码到C++的移植变得更容易。第三,由于类与结构的等价性,提供两个不同的关键字可以使类定义自由发展,为了保持C++与C的兼容性,结构定义必须始终受它的C定义的结束。
即使在有些地方可以使用结构来代替类,但尽量不要这么做,为了清楚起见,该用类的地方就用class关键字,该用C结构的地方就用struct关键字。