NGxs 2021-09-08 10:14 采纳率: 100%
浏览 67
已结题

C++教材里的,这两句话是不是矛盾了?请教解答一下

img

上面那句话说派生类没有对纯虚函数定义,则这个派生类也是抽象类不能定义对象,
后面那句话又说除非在派生类用“=0”把它声明为纯虚函数,否则它就不是纯虚函数,(那如果不是纯虚函数,那这个类就不是抽象类了,不是抽象类就可以定义对象了,不是和前面那句话矛盾吗?)初学C++,希望能详细指教下

  • 写回答

4条回答 默认 最新

  • 於黾 2021-09-08 10:17
    关注

    第一段里面的函数指的是基类里的函数,子类里把它实现了它自然就不再是虚函数了。
    读文章要看上下文,不要钻牛角尖。
    -=-=-=-=-=-=-=-=-=-=-=-=-=
    首先,纯虚函数只在抽象基类中存在,子类中不存在纯虚函数,但是也可能是个虚函数。如果子类中存在虚函数(没有实现全部的纯虚函数),那么子类依然是个抽象类,是不可以实例化的。
    换人话说,能实例化的类里面必须每个函数都可以执行,不可以有不能执行的函数。


    其实最根本的原因还是你没有读懂第一段话的意思。
    基类如果是抽象类,那么里面的虚函数就叫做纯虚函数。
    后面说的是子类里要不要实现基类里的纯虚函数,实现了如何,不实现又如何,可不是说子类里如果把它实现了,那么连基类里的叫法也要跟着变。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月16日
  • 已采纳回答 9月8日
  • 创建了问题 9月8日

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?