在构造函数中调用虚函数

来源:互联网 发布:mac版flash播放器下载 编辑:程序博客网 时间:2024/04/29 22:23
#include<iostream.h>
class A{
public:
 A(){}
 virtual void f()
 {cout<<"A::f() called"<<endl;
 }
 
};
class B:public A
{
public:
 B(){f();}
 void g(){f();}
};
class C:public B{
public:
 C(){}
 void f(){cout<<"C::f() called"<<endl;}
};
void main()
{
 C c;//输出A::f() called
 c.g();//输出C::f() called
}
//这是因为在建立C类的对象c时,它所包含的基类子对象(就是基类中的对象)在派生类中定义的成员建立之前被建立 
原创粉丝点击