关于继承和虚函数的抽象类(垃圾小白突击,只求不挂科)

例如写一个animal,fish,bird的类,fish和bird继承animal类,这时候就涉及到我的盲区了,经过一番摸爬滚打,了解到这时animal  类不能被用于实例化对象,只能作接口使用。

作为一个接口,它就得包含一些对象数据和特别的纯虚函数

class Animal
{
public:
virtual void Print()=0;
}

并且一旦有了纯虚函数,这个类即为抽象类,不能被实例化;派生类也要重写纯虚函数。

virtual只要在父类中写就好了,派生类中不用加virtual。

父类中正常构造函数,子类中是这样的

Fish(string a,bool b):Animal(a,b){};

main函数中对接口的使用如下

Animal *animal= &fish;
animal->Print();

我当时写的时候又有一个问题,报错显示不允许对不可访问的基类类型强制转换。因为我写的是protected继承,应该写public继承

class Fish: public Animal
{
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值