#include<string>
#include<iostream>
using namespace std;
class Base
{
public:
Base(){ init(); };
virtual void init(){ cout<<"Base init"<<endl; }
};
class compose{
public:
compose(){ init(); }
void init(){ cout<<"compose init"<<endl; }
};
class Derived:public Base
{
public:
Derived(){ init(); }
virtual void init(){ cout<<"Derived init"<<endl; }
private:
compose com;
};
int main( int argc, char ** argv )
{
Derived d;
((Base *) &d)->init();
((Base)d ).init();
}
输出: