虚函数多态问题
来源:互联网 发布:linux msleep 头文件 编辑:程序博客网 时间:2024/04/29 16:28
#include<iostream.h>
class A
{
public:
virtual void f()
{cout<<"A::f()"<<endl;}
void g()
{cout<<"A::g()"<<endl;}
void h()
{
cout<<"A::h()"<<endl;
f();
g();
}
};
class B: public A
{
public:
void f()
{cout<<"B::f()"<<endl;}
void g()
{cout<<"B::g()"<<endl;}
};
void main()
{
B b;
B * p=&b;
p->h();
}
运行结果:
A::h()
B::f()
A::g()
判断派生类的一个函数是不是虚函数:
1.该函数是否与基类的虚函数有相同的名称;
2.该函数是否与基类的虚函数有相同的参数个数及相同的对应参数类型;
3.该函数是否与基类的虚函数有相同的返回值或者满足类型兼容规则的指针,引用型的返回值。
如果从名称,参数以及返回值三个方面检查之后,派生类的函数满足了上述条件,就会自动确定为虚函数。
此时,派生类的虚函数便覆盖了基类的虚汗。不仅如此,派生类中的虚函数还会隐藏基类中同名函数的所有重载形式。
- 虚函数多态问题
- [c++]子类私有的虚函数,多态问题
- 菱形继承(虚函数)->菱形虚拟继承(虚函数)->多态系列问题
- 析构函数多态的问题
- 虚函数问题
- C++虚函数问题
- 虚函数表问题
- C++虚函数问题
- 虚函数问题
- C++虚函数问题
- C++ 虚函数问题
- 虚函数问题
- 虚函数问题探讨
- c++虚函数问题
- 虚函数调用问题
- 虚函数表问题
- MFC 虚函数函数重载问题
- 虚函数 虚表问题
- 架构修炼
- 如何在点击Datagrid的按钮“删除”时弹出确认对话框
- 汉字转换成Unicode编码
- Struts架构详解
- 郭冠英啊郭冠英
- 虚函数多态问题
- static关键字的3大作用
- Struts之Action类
- 手机卡服务密码破解
- 为自己的发展找个好的工作环境
- Struts原理
- C语言指针
- 可以让你少奋斗10年的工作经验
- 有关程序员的几则冷笑话