visual studio code1、多态的理念主要就是用到纯虚函数或者虚函数这个,这个c++的特殊处理函数利用父对象指针来访问子对象,然后根据子对象的函数来调用。
#include
usingnamespace std;
class parent
{
public:
parent(int a =0):a(a){};
~parent(){};
virtualvoid show_classname()=0;
private:
int a;
};
class child1 :public parent
{
public:
child1(int a=0,int b =0):parent(a),b(b){};
~child1(){};
void show_classname(){
cout <<"class name is child1"<<endl;
}
private:
int b;
};
class child2 :public parent
{
public:
child2(int a=0,int c =0):parent(a),c(c){};
~child2(){};
void show_classname()
{
cout<<"class name is child2"<<endl;
}
private:
int c;
};
int main()
{
child1 b;
child2 c;
parent *a;
a=&b;
cout <<"a ---> b"<<endl;
a->show_classname();
a=&c;
cout <<"a ---> c"<<endl;
a->show_classname();
}
结果:
a ---> b
class name is child1
a ---> c
class name is child2