我只是想了解这个功能。我说返回类型是指向对象 Fruit 的指针并且应该是内存中的地址是对的吗?另外,我在 fruitInCharacter 中返回了 Fruit 的取消引用对象,这也是一个内存地址?
Fruit* Player::fruit(int location)
{
if (location<(int)fruitInCharacter.size()) {
return &fruitInCharacter.at(location);
}
return NULL;
}
同样在第二个函数中,我使用 .push back 将指针(内存中的地址)传递给 vector ?
void Player::attachFruit(Fruit *inFruit)
{
fruitInCharacter.push_back(*inFruit);
}
最佳答案
是的。返回类型是指向 Fruit
对象的指针,并且“应该”是内存中的一个地址。
不。您不会返回“fruitInCharacter
中Fruit
的取消引用对象,它也是一个内存地址”。您正在返回 fruitInCharacter
内的 Fruit
对象的地址。您正在使用 &
运算符,因此您正在获取该对象的地址。
不。在第二个函数中,您没有“将指针(内存中的地址)传递到 vector 中”。您正在传递一个对象。由于 inFruit
是 Fruit *
类型(因此,它是一个地址),因此取消引用的表达式 *inFruit
是 Fruit< 类型
(因此,它是一个对象)。
关于c++ - 试图理解函数中指针的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22958387/