这个问题已经在这里有了答案:




已关闭8年。






之间有什么区别(如果有):

   Player player=*(new Player());

和:
   Player &player=*(new Player());

两者(似乎)的行为方式相同,但我肯定会错过一些东西吗?

最佳答案

区别在于,第一个创建副本,而第二个创建对new Player()返回的指针所指向的对象的引用。

Player player=*(new Player());

使用复制构造函数复制初始化player
Player &player=*(new Player());

只是为*(new Player())创建一个别名,该别名是有效的,因为new Player()不是临时的。因此,Player& player = Player()将是非法的。

他们在都是一样的,他们都吮吸

关于c++ - C++在重载的赋值运算符声明中做什么? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13351447/

10-11 22:48
查看更多