virtual关键字在父类
Posted windmissing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了virtual关键字在父类相关的知识,希望对你有一定的参考价值。
运行结果是什么?
father *pss1 = new sonson();
pss1->f();
delete pss1;
son *pss2 = new sonson();
pss2->f();
delete pss2;
sonson *pss3 = new sonson();
pss3->f();
delete pss3;
运行结果
sonson::f()
sonson::f()
sonson::f()
由此可见,只要在基类里写了virtual,派生类里写不写都没有影响的。最后都起到多态的效果。
此例是virtual关键字的基本用法,用于与后面其它的测试场景做对比。
其它测试
完整代码
#include <iostream>
using namespace std;
class father
public:
virtual void f()
cout<<"father::f()"<<endl;
;
class son : public father
public:
void f()
cout<<"son::f()"<<endl;
;
class sonson : public son
public:
void f()
cout<<"sonson::f()"<<endl;
;
int main()
father *pss1 = new sonson();
pss1->f();
delete pss1;
son *pss2 = new sonson();
pss2->f();
delete pss2;
sonson *pss3 = new sonson();
pss3->f();
delete pss3;
return 0;
以上是关于virtual关键字在父类的主要内容,如果未能解决你的问题,请参考以下文章
C#基础知识:virtual方法,abstract方法,区别
C++ 父类指针如何调用子类的变量和函数 虚函数virtual实例