错误:未定义的引用…在另一个成员函数中调用成员函数时
Error:undefined reference to... when calling a member function in another member function
在构建二叉搜索树时,我得到了一个我不理解的错误:
下面是我的类声明:
class BINARY{
public:
struct node{
double key;
node *parent;
node *left;
node *right;
};
node *root;
int count;
BINARY();
bool IS_EMPTY();
int BINARY_SIZE();
node *SUCCESSOR(node *pointer);
node *PREDECESSOR(node *pointer);
node *BINARY_INSERTION(double element);
double BINARY_DELETE(node *target);
node *BINARY_SEARCH(double element);
void INORDER_TREE_WALK(node *pointer);
node *TREE_MINIMUM(node *pointer);
node *TREE_MAXIMUM(node *pointer);
void TRANSPLANT(node *transtree, node *postion);
};
中定义了一个函数,用于查找某一子树中的最小元素
BINARY::node *TREE_MINIMUM(BINARY::node *pointer)
{
BINARY::node *index=pointer;
while(index->left!=NULL)
index=index->left;
return index;
}
然后在定义BINARY_DELETE函数(尚未完成)时调用这个函数TREE_MINIMUM:
double BINARY::BINARY_DELETE(BINARY::node *target)
{
if(target->left==NULL) TRANSPLANT(target->right, target);
else if(target->right==NULL) TRANSPLANT(target->left, target);
else{
BINARY::node *pointer;
pointer=TREE_MINIMUM(target);
}
}
但是,编译器发送错误:
In function `BINARY::BINARY_DELETE(BINARY::node*)':
binary.cpp:(.text+0x3dc): undefined reference to `BINARY::TREE_MINIMUM(BINARY::node*)'
collect2: error: ld returned 1 exit status
,我尝试了几种方法来摆脱它,但没有成功。对于函数BINARY_MINIMUM,我声明它以及定义它,我找不到我错过了什么,有人能帮助我吗?
这定义了一个独立函数:
BINARY::node *TREE_MINIMUM(BINARY::node *pointer) { //...
你可能想要这个:
BINARY::node *BINARY::TREE_MINIMUM(BINARY::node *pointer) { //...
不要忘记用成员函数所属的类来修饰它们的定义!
相关文章:
- 如何使用指针传递给函数的数组中对象的函数成员
- c++构造函数成员初始化:传递参数
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何在C++通过公共函数访问私有函数成员?
- 解释了构造函数成员初始化列表
- 调用std::函数成员时内存损坏
- 是否可以为模板类的模板函数成员设置别名?
- 捕获 lambda 函数C++成员变量
- 构造函数成员初始值设定项跨成员列出,安全吗?
- 获取与在模板参数中传递的函数成员类型相同的类
- 如何从公共函数成员访问地图私有成员
- C 构造函数成员分配优化
- 使用命名空间进行函数成员定义
- 函数成员作为 CUDA 内核的参数
- 模板基类函数成员的别名
- 函数成员中用于void和继承的enable_if
- 头文件中是否定义了一个很长的Class函数成员
- 类内/构造函数成员初始化
- 使用指向部分专用函数成员的指针自动填充向量
- 指向函数成员的指针