刚琴家 2022-09-07 21:26 采纳率: 100%
浏览 19
已结题

为什么纯虚函数看不到定义,却可以被使用

本人在编程的时候遇到个问题,在屏幕左边NearestNeighbors.h头文件内的class NearestNeighbors里定义了纯虚函数list函数,根据纯虚函数的定义, ((纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”))

在屏幕右边MYRRT.h头文件中,第197行代码实例化类生成了nn_

img

但在MYRRT.cpp中的第62行nn_->list()直接就是nn_调用了list函数。

本人的疑惑就是list纯虚函数的定义在哪,为什么没有定义就nn_可以直接调用list()函数

img

  • 写回答

3条回答 默认 最新

  • 私房菜 移动开发领域优质创作者 2022-09-08 09:05
    关注

    能调用,和可执行是两码事
    我看了你这个头文件,确实是个纯虚函数,然后你居然用了这个类智能指针调用list
    但是,你这个代码应该会出错
    你纯虚函数也是虚函数,在虚函数表中会有定义,调用没问题,但运行会报错

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 付费求做一个自助抢单插件
  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题