moc_base.cpp:-1: error: undefined reference to `base::go()'

gdmm919705 2019-08-04 09:26:18

class base : public QObject
{
Q_OBJECT
public:
virtual void go();

};
class child:public base
{
Q_OBJECT
public:
child();
void go();
};

#include "child.h"
#include "qdebug.h"
child::child()
{

}

void child::go()
{
qDebug()<<"11111";
}

为什么会提示:moc_base.cpp:-1: error: undefined reference to `base::go()'
...全文
384 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdmm919705 2019-08-05
  • 打赏
  • 举报
回复
引用 3 楼 真相重于对错 的回复:
确保,child的所有基类的纯虚函数被override

基类的参数设计一个基类结构struct_base,struct_child继承于struct_base,然后子类传参用这个struct_child可以吗

class base
{
public:
virtual void go(struct_base base);

};
class child:public base
{

public:
child(struct_child child);
void go();
};
真相重于对错 2019-08-05
  • 打赏
  • 举报
回复
确保,child的所有基类的纯虚函数被override
gdmm919705 2019-08-05
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
试试
class base : public QObject
{
Q_OBJECT
public:
virtual void go()=0;

};

可以了。但又出现一个错误,我这样写

child obj;
obj.go();

提示error: cannot declare variable 'obj' to be of abstract type 'child '
真相重于对错 2019-08-04
  • 打赏
  • 举报
回复
试试 class base : public QObject { Q_OBJECT public: virtual void go()=0; };

64,635

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧