静态绑定和动态绑定
多态
- 多态是指相同对象收到不同指令或不同对象收到相同指令时产生不同的动作。
静态绑定
class Class
{
public:
void show(int a)
{
cout << a;
}
void show(int a, int b)
{
cout << a+b;
}
};
int main()
{
Class c;
c.show(10);
c.show(10,20);
}
动态绑定
class ClassA
{
public:
virtual void show() {}
};
class ClassB:public ClassA
{
public:
ClassB(int y):x(y) {}
virtual void show()
{
cout << x+1;
}
private:
int x;
};
class ClassC:public ClassA
{
public:
ClassC(int y):x(y) {}
virtual void show()
{
cout << x-1;
}
private:
int x;
};
int main()
{
ClassA *p1 = new ClassB(10);
ClassA *p2 = new ClassC(10);
p1->show();
p2->show();
delete p1;
delete p2;
}