#include
<
iostream.h
>
class base
... {
public:
base()...{cout<<"base::base() ";}
virtual ~base()...{cout<<"base::~base() ";}
void func1()...{cout<<"base::func1() ";}
virtual void func2()...{cout<<"base::func2() ";}
} ;
class inherited: public base
... {
public:
inherited()...{cout<<"inherited::inherited() ";}
~inherited()...{cout<<"inherited::~inherited() ";}
void func1()...{cout<<"inherited::func1() ";}
void func2()...{cout<<"inherited::func2() ";}
} ;
void func1()
... {
inherited a;
base b;
base *pb;
pb=(base*)&a;
pb->func1();
pb->func2();
}
void func2()
... {
inherited * pa=new inherited;
base * pb=(base*)pa;
pb->func1();
pb->func2();
delete pa;
}
int main()
... {
cout<<"func1: ";
func1();
cout<<" func2: ";
func2();
return 0;
}
class base
... {
public:
base()...{cout<<"base::base() ";}
virtual ~base()...{cout<<"base::~base() ";}
void func1()...{cout<<"base::func1() ";}
virtual void func2()...{cout<<"base::func2() ";}
} ;
class inherited: public base
... {
public:
inherited()...{cout<<"inherited::inherited() ";}
~inherited()...{cout<<"inherited::~inherited() ";}
void func1()...{cout<<"inherited::func1() ";}
void func2()...{cout<<"inherited::func2() ";}
} ;
void func1()
... {
inherited a;
base b;
base *pb;
pb=(base*)&a;
pb->func1();
pb->func2();
}
void func2()
... {
inherited * pa=new inherited;
base * pb=(base*)pa;
pb->func1();
pb->func2();
delete pa;
}
int main()
... {
cout<<"func1: ";
func1();
cout<<" func2: ";
func2();
return 0;
}