Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 继承类问题未定义引用_C++_Inheritance_Virtual Functions - Fatal编程技术网

C++ 继承类问题未定义引用

C++ 继承类问题未定义引用,c++,inheritance,virtual-functions,C++,Inheritance,Virtual Functions,有两个类,一个是相机继承扫描仪。 我想在父类中编写一些虚拟函数, 并在子类中实现。 但我遇到了一些问题 扫描仪.h class Scanner : public QObject { public: explicit Scanner(QObject *parent = nullptr); ~Scanner(); virtual bool Connect() =0; }; scanner.cpp #include "scanner.h" Scanner

有两个类,一个是相机继承扫描仪。 我想在父类中编写一些虚拟函数, 并在子类中实现。 但我遇到了一些问题

扫描仪.h

class Scanner : public QObject
{
public:
    explicit Scanner(QObject *parent = nullptr);
    ~Scanner();
    virtual bool Connect() =0;
};
scanner.cpp

#include "scanner.h"

Scanner::Scanner(QObject *parent) : QObject(parent)
{
}

Scanner::~Scanner()
{
}
照相机

#include "scanner.h"

class Camera : public Scanner
{
public:
    explicit Camera();
    ~Camera();
    
    bool Connect();
};
camera.cpp


#include "camera.h"

Camera::Camera() 
{
    
}

Camera::~Camera() 
{
}

bool Camera::Connect()
{
    return true;
}

构建之后,我收到了这些错误消息

CMakeFiles/scanner_test.dir/src/camera.cpp.o: In function `Camera::Camera()':
camera.cpp:(.text+0x19): undefined reference to `Scanner::Scanner(QObject*)'
CMakeFiles/scanner_test.dir/src/camera.cpp.o: In function `Camera::~Camera()':
camera.cpp:(.text+0x58): undefined reference to `Scanner::~Scanner()'
CMakeFiles/scanner_test.dir/src/camera.cpp.o:(.data.rel.ro._ZTI12Camera[_ZTI12Camera]+0x10): undefined reference to `typeinfo for Scanner'
collect2: error: ld returned 1 exit status
make[2]: *** [scanner_test] Error 1
make[1]: *** [CMakeFiles/scanner_test.dir/all] Error 2
make: *** [all] Error 2
我试图修好它,但没用。
有人知道问题出在哪里吗?

这看起来不像是源代码问题。您是否可以发布命令行或生成命令行的cmake行,从而导致此ld(链接器)错误?