作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让 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/
我是一名优秀的程序员,十分优秀!