1. 当基类中有纯虚函数的时候,是不可以实例化的,事实上也是没必要实例化的(嗯)
当想要开一个数组(包含不同派生类),解决办法是,使用动态管理,申明一个基类的指针数组
使用new 声明指针数组的方式 如下: 注意 * 号!
pointer = new class*【size】
但是这样的话也会有问题:
①因为这个是基类指针,所以只能访问基类的成员函数和成员变量,否则编译器会报错
基类指针指向派生类,则该指针只可以访问基类的成员函数和成员变量
解决办法:使用纯虚函数,,
这样可以保证通过基类的接口使用派生类定义的函数。
②使用派生类的指针,访问(引用)基类 (即派生类的指针指向基类):必须通过现实转换!而且很危险
③、如果基类和派生类都定义了“相同名称之函数”,那么通过对象指针调用成员函数时,到底调用了那个函数,必须视该指针的原始类型而定,而不是视指针实际所指的对象的类型而定,这与第1点其实意义相通。
下面提供一个学习虚函数的好博文:http://blog.csdn.net/sanfengshou/article/details/4574604