C++在多层继承中调用虚函数
来源:互联网 发布:博时银联大数据 编辑:程序博客网 时间:2024/06/07 03:37
在一个类中的虚函数说明,只对派生类中重定义的函数有影响,对它的基类中的函数不起作用。
例:
#include <iostream>
using namespace std;
class A
{
public:
void show()
{
cout<<"The show in A."<<endl;
}
};
class B:public A
{
public:
virtual void show()
{
cout<<"The show in B."<<endl;
}
};
class C:public B
{
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语言函数
- MySQL数据入库时特殊字符处理
- 关于发送多条notifications所遇到的一些问题 2
- C++ 虚函数
- pip 的相关记录
- 利用JavaScript绕过表单限制及验证
- C++在多层继承中调用虚函数
- 临界区,互斥量,信号量,事件的区别
- 让ScrollViewer支持鼠标滚轮效果
- cocos2d-x屏幕适配
- PHP技巧:解决PHP相对目录问题最有效的办法
- C++在多重继承中调用虚函数
- hbase shell基础和常用命令详解
- 微信/易信公共平台开发(四):公众号调试器 (仿真微信平台,提供PHP源码)
- android 判断activity是否在最上层