C++在多层继承中调用虚函数
来源:互联网 发布:奚梦瑶长相知乎 编辑:程序博客网 时间:2024/05/20 13:36
在一个类中的虚函数说明,只对派生类中重定义的函数有影响,对它的基类中的函数不起作用。
例:
#include <iostream>
using namespacestd;
class A
{
public:
void show()
{
cout<<"The show in A."<<endl;
}
};
class B:publicA
{
public:
virtual void show()
{
cout<<"The show in B."<<endl;
}
};
class C:publicB
{
public:
void show()
{
cout<<"The show in C."<<endl;
}
};
int main(int argc,const char * argv[])
{
C cobj;
cobj.show();//调用c的show方法。
cobj.B::show();//调用B的show方法。
cobj.A::show();//调用a的show方法。
A &refaobj=cobj;//引用。
refaobj.show();//调用的是 a的show方法。
B &refbobj=cobj;
refbobj.show();//调用的是c的show方法。
refbobj.B::show();//调用的是b的show方法。
return 0;
}
在程序中,我们将类B的show()函数声明为虚函数,所以在类c继承了类B后,它的show()函数也将是虚函数,因此在当类c的对象调用 show()函数时,它调用的是自己的成员。
由于类A中没有声明虚函数,所以它的对象或引用调用show()时,也都将调用的是自己的成员
类B声明自己的show()函数为虚函数,所以类c的对象初始化它的引用,类B的引用调用的是类C的成员函数。
- C++在多层继承中调用虚函数
- C++在多层继承中调用虚函数
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
- 多层继承中的虚函数
- C++在多重继承中调用虚函数
- C++在多重继承中调用虚函数
- 在C 中子类继承和调用父类的构造函数方法
- c++实函数虚函数在继承体系中是如何调用的
- 构造与析构函数在继承中如何调用
- C#静态构造函数,在继承中调用情况
- 怎样在C中调用C++函数
- 在汇编程序中调用C函数
- 在汇编程序中调用C函数
- 在Lua中调用C函数
- 在.c文件中调用cuda函数
- 在汇编程序中调用C函数
- 如何在C++中调用 C 函数?
- 在C#中调用C语言函数
- vc创建剪贴板
- 使用NSOperationQueue方法解决用户登录异步处理
- 正则表达式的JS验证
- php中header函数参数说明
- Dev-C++编译wxWidgets
- C++在多层继承中调用虚函数
- 实战2——Hadoop的日志分析
- mkdir函数的通俗理解
- Umeng IOS开发应用
- 海量数据处理--bit-map的使用
- Android 错误提示及解决方法
- 简单的问题:char指针无法赋值
- C、C++类和结构体的区别
- Iframe父窗口与子窗口