C++多态性
#include<stdio.h>
class Addxy
{
int _x;
int _y;
public:
Addxy(int x = 0,int y = 0):_x(x),_y(y){};
virtual int add()
{
printf("--Addxy----%d----\r\n", (_x+_y));
return (_x+_y);
}
int getAdd()
{
return (_x+_y);
}
};
class Addxyz : public Addxy
{
int _z;
public:
Addxyz(int x=0,int y=0,int z=0):Addxy(x,y),_z(z){}
int add()
{
printf("-Addxyz-----%d----\r\n",(this->getAdd()+this->_z));
return (Addxy::add()+this->_z);
}
};
int add(Addxy * AD)
{
printf("------%s----\r\n","add(Addxy * AD)");
return AD->add();
}
int main()
{
Addxy a(1,5);
add(&a);
Addxyz b(1,10,5);
add(&b);
return 0;
}
1.为什么需要多态。
2.如何实现多态
3.覆盖
4.虚函数内部机制