c++ - "MyClass mc = MyClass()"还是 "MyClass mc"?

标签 c++ initialization

有什么区别

MyClass mc = MyClass();

MyClass mc;

在 C++ 中?

最佳答案

第一个调用复制构造函数,以临时对象作为参数 - MyClass() 创建临时对象。

第二个调用默认构造函数。

实际上,在大多数情况下,它们针对相同的代码进行了优化,但这就是语义上的差异。


Negal 所述,POD 类型的情况略有不同;当“MyClass”是 POD 时,第二个片段不会对 mc 进行值初始化,而第一个片段会。

关于c++ - "MyClass mc = MyClass()"还是 "MyClass mc"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951365/

相关文章:

c++ - 为什么在抛出意外异常时此程序没有中止?

C++ MFC 整数文本字段始终设置为 0?

javascript - 可以用这种方式在javascript中初始化一个对象吗?

java - 为什么我不能在 Java 的开关中初始化变量?

c++ - Ada 记录缺少的功能

c++ - 如何使用分配器精确模拟新的 T[n]?

c++ - 来自 vector 图像的 OpenGL 自动代码生成器

c++ - 模板代码返回类型重载未编译。怎么了

c++ - C++ 函数声明中,右括号前的 & 符号有何作用?

C++:数独(抄板)