所以我只是在写一些代码,有点难倒自己
我有一个类 Node 和另一个类 BinaryTree:
class Node
{
public:
Node();
Node(int thedata, Node* right, Node* left):data(thedata), right_pointer(right), left_pointer(left){};
int get_data(){return data;}
Node* get_right() {return right_pointer;}
Node* get_left() {return left_pointer;}
private:
int data;
Node* right_pointer;
Node* left_pointer;
};
class BinaryTree
{
private:
Node* root;
void add_tree_node(Node*& root,int data);
void print_tree(Node* root);
public:
BinaryTree();
void print_tree();
void add_tree_node(int data);
};
我的问题是这个命令:
add_tree_node(root->get_right(), 数据);
我收到一条错误消息:没有重载函数的实例。其中 get_right() 返回一个指向该指针的指针,并且想知道是否有更好的方法来代替下面的两个选项。
当我这样做时: Node* right = root->get_right(); add_tree_node(右,数据);
或者
add_tree_node(root->right_link,data);
它有效,我理解它为什么有效,因为我们传递的是指针本身而不是值。