200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 抽象类的继承/纯虚函数的实现

抽象类的继承/纯虚函数的实现

时间:2019-05-21 19:24:35

相关推荐

抽象类的继承/纯虚函数的实现

纯虚函数是指类似 virtual void Do()=0 的函数,含有纯虚函数的类是抽象类,不能实例化对象,其子类需实现所有纯虚函数方能实例化对象。

以上面向对象的规则读者应该都比较清楚,但有个问题大多数教程都没有详细说明。若class A有2个虚函数Do1、Do2;class B继承自A,实现了Do1;class C继承自B,实现了Do2。那么请问C能不能实例化对象?

答案是可以。可以这样考虑,当思考C是否能实例化对象时,就看其是否实现了其父类(farther)B中的纯虚函数是否全部实现。而B中只有1个(从A继承来的)纯虚函数Do2,被C所实现。所以C可以实例化对象。

上代码:

class A{public:virtual void Do()=0;virtual void Play()=0;};class B : public A{public:void Do(){cout << "Do By B;" << endl;}};class C:public B{public:void Play(){cout<<"Play By C;" << endl;}};void ShowWhoDo(A &aa){aa.Do();aa.Play();}void main(){//A a;//ShowWhoDo(a);//B b;//ShowWhoDo(b);C c;ShowWhoDo(c);system("pause");}

顺便再来个问题,1. void ShowWhoDo(A &aa)中&能否不要?2.上述代码输出什么?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。