1C与C++的区别:
在C语言中,“数据”和“处理数据的操作(函数)”是分开来声明的,其语言本身并没有支持“数据和函数”直接的关联性。程序性:由一组“分布在各个以功能为导向的函数中”的算法所驱动,它们处理的是共同的外部数据。
而C++采用ADT(abstract data tpye)或class hierarchy的数据封装。加上封装后,C++在布局以及存取时间上的主要额外负担是由virtual引起的,包括两个方面:
- virtual function机制(用以支持一个有效率的“执行期绑定”(runtime binding))
- virtual base class(用以实现“多次出现在继承体系中的base class,有一个单一而被共享的实体”)。
2、C++对象模式
C++中有两种class data members:static、nostatic,以及三种class member functions:static、nonstatic 和virtual。
- nonstatic data members被配置于每一个class object之内;
- static data members则被存在在所有calss object之外;
- static和 non static function members也被放在所有class object之外;
virtual function则以两个步骤支持: