【发布时间】:2010-10-01 22:13:29
【问题描述】:
我希望使用引用而不是使用指针来实现二叉树(这通常是您在互联网上的每本书和每个网站中都可以找到的)。我尝试了以下代码:
class tree_node {
private:
tree_node& left;
tree_node& right;
data_type data;
public:
void set_left(tree_node&);
// ... other functions here
};
void tree_node::set_left(tree_node& new_left) {
this.left = new_left;
}
我收到以下错误: 错误 C2582: 'operator =' 函数在 'tree_node' 中不可用。
我知道我可以使用指针轻松实现它,但我想保持我的解决方案优雅且没有指针。你能告诉我哪里出错了吗?
【问题讨论】:
-
谁说“优雅”的意思是“没有指针”?如果它可以用指针轻松完成,为什么要避免它们?
-
不。我认为使用引用会更好看。无论如何,我一直愚蠢地忽略了在初始化后无法修改引用的事实。非常感谢您的及时回复。 :)
标签: c++ reference tree binary-tree