对超类方法的未定义引用

Undefined reference to superclass method

本文关键字:未定义 引用 类方法 超类      更新时间:2023-10-16

我正在尝试创建一个函数,通过从条目超类调用另一个函数来输出二叉搜索树中的数据,但我不断收到错误:

对"Entry::inOrderPrint(Entry*("的未定义引用collect2:错误:ld 返回 1 个退出状态

我尝试重命名超类 inOrderPrint 函数,但无济于事。

超类的头文件如下所示:

class Entry
{
public:
    //...
    void inOrderPrint(Entry *startNode);
private:
    //...
};

Entry 类的.cpp文件:

#include "Entry.h"
//...
void inOrderPrint(Entry *startNode)
{
    // printing algorithm
}

子类 BST.h 文件:

#include "Entry.h"
class BST : public Entry
{
public:
    //...
    void inOrderPrint();
private:
    Entry *root;
};

子类.cpp文件:

#include "BST.h"
//...
void BST::inOrderPrint()
{
    Node::inOrderPrint(root);
}

真的不明白为什么编译器认为对 Entry::inOrderPrint(Entry*( 的引用是未定义的。任何帮助非常感谢。

原来我忘了将 Entry:: scope 添加到我的 Entry.cpp 文件中。