【发布时间】:2014-04-12 05:29:38
【问题描述】:
例如在这样的函数中:
void Monster::Attack(Player& player)
此函数将位于 Monster 类的 .cpp 文件中,并使用 Player 类的标头。
新对象播放器是否可以访问嵌入到 Player 类中的所有好东西。还有为什么不能:
void Monster::Attack(Player player)
完成了吗?
【问题讨论】:
-
我不确定你在问什么,但是当你想修改类的状态而不必取消引用指针时使用引用.. Monster 的攻击函数应该采用引用或指针,如果它正在修改玩家状态。如果你这样做
Attack(Player player),那么攻击函数会获得该玩家的“副本”。 -
存储限定符的语义已经写了一遍又一遍。我推荐一个好的谷歌搜索它们是如何工作的。它比从管道的某个地方得到相同的答案更能帮助你。
-
这实际上是一个有用的人,所以使用引用会修改数据而不必返回任何东西?
-
除了 CantChooseUsernames 所说的之外,每当您想要传递对象而不复制它时,都会使用引用。它基本上只不过是一个美化的不可空指针,仅此而已。无论使用引用还是指针,编译器都会发出相同的机器代码,它只是验证引用永远不能为 NULL,仅此而已。