- 建立基類指針,用派生類賦值的時候,基類的構造函數也會執行。先執行派生類構造函數,再執行基類構造函數,而且指針指向基類函數的派生類部分。
#include<iostream>
using namespace std;
class A{
public:
A(){}
virtual void func()
{
cout<<"A::func"<<endl;
}
virtual void fund()
{
cout<<"A::fund"<<endl;
}
void fun()
{
cout<<"A::fun"<<endl;
}
};
class B:public A{
public:
B(){func();}
void fun(){func();}
};
class C:public B{
public:
C(){}
void func()
{
cout<<"C::func"<<endl;
}
void fund()
{
cout<<"C::fund"<<endl;
}
};
int main(){
A* pa=new B();
pa->fun();
B* pb=new C();
pb->fun();
return 0;
}
- 結果
![](http://static.javashuo.com/static/loading.gif)