c++ - "&"和通过引用传递

标签 c++ data-structures binary-tree binary-search-tree

我在二叉搜索树中有一个函数,它返回特定节点的地址:

binary_tree_node*& left( ) { return left_field; }

我注意到“&”表示传递 left_field 的地址。 如果我删除了“&”,是否意味着我在使用下面的函数时会引入编译错误?

root->left()=new binary_tree_node<ItemType>(9);

最佳答案

I note that the "&" means pass the address of the left_field

在这种情况下,“&”表示“引用”而不是“地址”

所以你返回的是指针的引用,而不是指针的地址。

如果没有“&”,这一行将无法编译:

root->left()=new binary_tree_node<ItemType>(9);

因为你会为一个临时指针赋值(left() 函数的返回值)。而如果您使用引用,则返回的指针是您类中的指针。

关于c++ - "&"和通过引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20102115/

相关文章:

java - 在java中实现链表时遇到问题

database - 需要字典数据库

r - 终端面板 partykit r 节点 id 绘制对象信息

c - tsearch 和 tfind

C++编译时类的子类列表

c++ - 调用 ARPACK 反向通信矩阵 vector 例程

c - struct数组的数据结构

optimization - 具有查找功能的优先队列 - 最快的实现

c++ - 自定义 QProgressBar

c++ - 处理不完整的类型