一个通过引用传递的指针。为什么呢?指针不就是引用吗?这个参数到底发生了什么?
void someFunc(MyPtr*& Object)
{
}
一个通过引用传递的指针。为什么呢?指针不就是引用吗?这个参数到底发生了什么?
void someFunc(MyPtr*& Object)
{
}
简单来说,它使您能够更改指针本身:可以将其更改为指向函数中的另一个位置。并且更改将在外部反映出来。
它使您能够:
void someFunc(MyPtr*& Object)
{
//Modify what Object is pointing to
Object=&old_Object;
//You can also allocate memory, depending on your requirements
Object=new MyPtr;
//Modify the variable Object points to
*Object=another_object;
}
其他人将不得不投票验证这一点,因为我对C++有点生疏,但我相信这里的想法是你会通过引用传递指针,也就是说,你不是创建一个新的空间来存储指针本身,而是使用指针的引用,因此如果你修改了指针而不仅仅是值,那么在从函数返回后它将被修改,否则你只能修改传入位置的值。希望这样说得清楚。
Object = x
),则调用函数将看到此更改。当您传递 MyPtr** Object
并取消引用指针 *Object = x;
时,您可以实现相同的效果。使用第二种方法,您可以将 NULL 传递给函数。对于引用,这是不可能的。这也意味着指针可以是0(NULL),这对于方法可能具有含义。引用必须始终有效,不能变成“无”。