gpt4 book ai didi

c++ - 此作业是否创建拷贝?

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:14 25 4
gpt4 key购买 nike

创建这个新对象 v 会产生一个全新的对象,还是会产生一个由 *this 引用的相同对象空间?

Vector2 v = *this;

我不认为它实际上是在创建一个新对象,但我在一个示例应用程序中看到了这段代码,该代码随后操作了这个新对象,即使这段代码位于一个设置为 const< 的类函数中。因此,我希望这个对象 v 实际上是一个与 *this 完全不同的内存空间。

最佳答案

它正在创建一个新对象,是的 - 但通过初始化,而不是赋值。

然而,您可以通过使用引用绕过它,Vector2& v = *this;,在这种情况下,v*this 的别名(或者 const Vector& v = *this,如果方法是 const)。

这正是你所说的原因 - 因为发生这种情况的方法是 const,所以没有办法改变 *this - 所以你需要一个它的非 const 拷贝。

关于c++ - 此作业是否创建拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13911322/

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