`

继承多态

 
阅读更多
#include<iostream.h>

classbase
...{
public:
base()...{cout<<"base::base() ";}
virtual~base()...{cout<<"base::~base() ";}
voidfunc1()...{cout<<"base::func1() ";}
virtualvoidfunc2()...{cout<<"base::func2() ";}
}
;

classinherited:publicbase
...{
public:
inherited()
...{cout<<"inherited::inherited() ";}
~inherited()...{cout<<"inherited::~inherited() ";}
voidfunc1()...{cout<<"inherited::func1() ";}
voidfunc2()...{cout<<"inherited::func2() ";}
}
;

voidfunc1()
...{
inheriteda;
baseb;
base*pb;
pb
=(base*)&a;
pb
->func1();
pb
->func2();
}

voidfunc2()
...{
inherited
*pa=newinherited;
base*pb=(base*)pa;
pb
->func1();
pb
->func2();
deletepa;
}

intmain()
...{
cout
<<"func1: ";
func1();
cout
<<" func2: ";
func2();
return0;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics