c++ - 构造函数的快捷方式

标签 c++

其实我不知道这个成语怎么定义。

在一些代码中我有红色的东西,比如:

ClassWithAMessage c = "This is the message";

我希望阅读的地方:

ClassWithAMessage c("This is the message");

我不知道如何重现这种行为,有人可以提供一些信息或玩具示例吗?

最佳答案

ClassWithAMessage c = "This is the message";

复制初始化。复制构造函数必须可用才能工作。首先,使用来自 "This is the message" 的转换构造函数构造一个临时的 ClassWithAMessage。然后将临时文件与复制构造函数一起用于构造 c。这受复制省略的影响(可能不存在温度)。

ClassWithAMessage c("This is the message");

直接初始化。直接使用转换构造函数。

不是真正的习语,只是构造对象的不同方式。

关于c++ - 构造函数的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463023/

相关文章:

c++ - 迭代器循环与索引循环

c++ - 调试断言失败消息

c++ - 模板特化问题

c++ - 为什么对变量的引用有时表现为大小为 1 的数组?

c++ - 具有共享指针的列表的共享指针

c++ - 在编译时计算函数参数

c++ - 位图的按位操作的位集或 native 数据类型?

c++ - 是否可以在命名空间内使用 new 运算符创建类的对象?

c++ - 下标时是否必须使用 constexpr 数组?

c++ - 我的 usercall 函数的 stdcall 包装器是否正确?