抽象类是无法建立对象、但可以定义指针、该指针可以指向它的派生类,进而实现多态性,也可以通过引用。
class A{
public:
virtual int getA() = 0;
};
class B : public A
{
public:
virtual int getA();
};
class C : public A
{
public:
virtual int getA();
};
int B::getA()
{
return 3;
}
int C::getA()
{
return 4;
}
int main()
{
B b;
C c;
A *a[2];
a[0] = &b;
a[1] = &c;
cout<<"b.a="<<a[0]->getA()<<endl;
cout<<"c.a="<<a[1]->getA()<<endl;
A &a1 = b;
A &a2 = c;
cout<<"b.a ="<<a1.getA()<<endl;
cout<<"c.a ="<<a2.getA()<<endl;
return 0;
}