gpt4 book ai didi

c++发送什么参数的麻烦

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:57 25 4
gpt4 key购买 nike

我目前正在编写一个项目,我有一个如下所示的函数:

Room::addItem(Item*&); //not written by me

我在理解要作为参数发送什么时遇到了一些麻烦。“*&”把我搞得一团糟。

我试过以下方法:

foo.addItem(loadItem());         //Returns an Item-object
/*and*/
foo.addItem(loadItem()); //Returns an Item-pointer

编辑:如果您能解释一下“*&”的含义,那就太好了。我想在下次遇到它时了解它;)

最佳答案

addItem 函数接受类型为 Item* 的参数,指针通过引用传递。这意味着函数 addItem 可以在内部修改指针。这也可能意味着正在该函数内部重新分配或修改对象。

例子:

void pointerByValue(int* ptr)
{
ptr = new int[10];
}


void pointerByReference(int*& ptr)
{
ptr = new int[10];
}

void main()
{
int* p = NULL; //A NULL pointer

pointerByValue(p); //p is still NULL

pointerByReference(p); //memory has now been allocated to p
}

引用指针仅在 C++ 中有效。

关于c++发送什么参数的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com