构造函数的快捷方式

时间:2012-09-17 16:01:48

标签: c++

实际上我不知道如何定义这个习语。

在某些代码中,我有类似的东西:

ClassWithAMessage c = "This is the message";

我希望阅读:

ClassWithAMessage c("This is the message");

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

1 个答案:

答案 0 :(得分:5)

ClassWithAMessage c = "This is the message";

复制初始化。必须有一个拷贝构造函数才能使用它。首先,使用ClassWithAMessage中的转换构造函数构造临时"This is the message"。然后将临时用于复制构造函数以构造c。这取决于复制省略(临时可能不存在)。

ClassWithAMessage c("This is the message");

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

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