我自己总结的如何调用抽象类内的函数接口

第一:通过类的指针无论是子类还是父类都可以调用抽象类内的正常函数接口,注意只能调用正常的,如果是虚函数接口是不可以调用的,下面是程序例子:
在这里插入图片描述
像如图上所示当用指针访问抽象父类的正常函数的时候,程序是没有问题的。当这个函数我写成虚函数以后:在这里插入图片描述
所以说无法通过指针调用抽象类内的虚函数,会出现这个访问冲突问题。

第二:可以通过子类来调用父类的函数接口,当然子类必须对父类的纯虚函数进行了定义来确保子类不是抽象类,要注意一点子类对父类的定义必须完全按照父类纯虚函数的返回值跟形参进行定义,否则子类仍然会被认为是抽象类,那个纯虚函数的定义会被认为是普通的函数重载,下面是程序示例:
在这里插入图片描述
可以看到当子类不再是抽象类的时候,给子类实例化然后利用子类对象去调用抽象类内的哪怕是虚函数都不会出现问题,这个方法也是C++官方给出的方法。
最后我再说一下,抽象类尽量不要直接用,哪怕是第一种指针的方法也尽量不要用,还是尽量用第二种方法去调用抽象类中的函数接口才最为稳妥。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值