gpt4 book ai didi

C++ 对象实例化与赋值

转载 作者:IT老高 更新时间:2023-10-28 23:13:17 31 4
gpt4 key购买 nike

这有什么区别:

TestClass t;

还有这个:

TestClass t = TestClass();

我预计第二个可能会调用构造函数两次,然后是 operator=,但实际上它只调用了一次构造函数,就像第一个一样。

最佳答案

TestClass t;

调用默认构造函数。

TestClass t = TestClass();

是一个复制初始化。它将调用 TestClass() 的默认构造函数,然后调用复制构造函数(理论上,复制受制于 复制省略)。 这里没有分配任务

还有直接初始化的概念:

TestClass t(TestClass());

如果要使用赋值运算符:

TestClass t;
TestClass s;
t = s;

关于C++ 对象实例化与赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853700/

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