关于C++抽象类建立对象的问题

 抽象类是无法建立对象、但可以定义指针、该指针可以指向它的派生类,进而实现多态性,也可以通过引用。

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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值