纯虚函数实现的一些问题
问题(1)
例如,我声明一个基类A,成员函数中有且只有一个纯虚函数,而且B,C是A的直接派生类,需要用来定义对象,显然B,C中分别实现了这个纯虚函数,
如果D是B或者C的派生类(一个基类),那么,D中还要不要对A中的纯虚函数进行实现???
问题(2)
例如,我声明一个基类A,成员函数中有且只有一个纯虚函数,而且B,C是A的直接派生类,显然B,C中分别实现了这个纯虚函数,
如果D是B和C的派生类(两个基类),那么,D中还要不要对A中的纯虚函数进行实现???还有,这样是不是会出现同名的函数???采用虚基类可以解决这个问题么????????????
问题(3)
如果上面的基类A中有不止一个纯虚函数,那么是不是在B,C中所有的纯虚函数都要实现?
[解决办法]
我早晨刚问完的问题,给你俩网址,看完了之后就懂了,反正我是这样。
http://blog.csdn.net/haoel/article/details/1948051
http://blog.csdn.net/chgaowei/article/details/6427731
[解决办法]
class A{public: virtual void print() const=0;};class B: public A{public: void print()const { cout<<"欢迎来到屌丝的世界"<<endl; }};class C:public A{public: void print()const { cout<<"Hello World!"<<endl; }};class D:public B{};int _tmain(int argc, _TCHAR* argv[]){ D d; d.print(); system("pause"); return 0;}欢迎来到屌丝的世界请按任意键继续. . .
[解决办法]
如果子类的虚函数的操作和基类的不同,就应该重新实现。这样使用时,可以实现多态应用。