#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++代码示例介绍了虚函数的概念及其在继承中的应用。演示了如何通过派生类重写基类的虚函数,并展示了运行时多态的效果。
577

被折叠的 条评论
为什么被折叠?



