gpt4 book ai didi

c++ - "T a"、 "T a()"和 "T a=T()"之间有什么区别,其中 T 是一个类?

转载 作者:行者123 更新时间:2023-12-05 09:02:05 26 4
gpt4 key购买 nike

T 成为一个 C++ 类。

下面三个指令在行为上有什么区别吗?

T a;
T a();
T a = T();

T 为不带参数的构造函数提供了显式定义这一事实是否对问题有任何改变?

后续问题:如果 T 为至少接受一个参数的构造函数提供定义怎么办?那么以下两条指令之间的行为会有所不同吗(在这个例子中,我假设构造函数只接受一个参数)?

T a(my_parameter);
T a = T(my_parameter);

最佳答案

T a; 执行默认初始化。

T a = T(); 执行值初始化。

T a(); 没有声明名为 a 的变量。它实际上声明了一个名为 a 的函数,该函数不接受任何参数,其返回类型为 T

讨论了默认初始化和值初始化之间的区别here .

关于c++ - "T a"、 "T a()"和 "T a=T()"之间有什么区别,其中 T 是一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71981976/

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