0

其实我不知道如何定义这个成语。

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

ClassWithAMessage c = "This is the message";

我希望读到的地方:

ClassWithAMessage c("This is the message");

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

4

1 回答 1

5
ClassWithAMessage c = "This is the message";

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

ClassWithAMessage c("This is the message");

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

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

于 2012-09-17T16:03:10.003 回答