实际上我不知道如何定义这个习语。
在某些代码中,我有类似的东西:
ClassWithAMessage c = "This is the message";
我希望阅读:
ClassWithAMessage c("This is the message");
我不知道如何重现这种行为,有人可以提供一些信息或玩具示例吗?
答案 0 :(得分:5)
ClassWithAMessage c = "This is the message";
复制初始化。必须有一个拷贝构造函数才能使用它。首先,使用ClassWithAMessage
中的转换构造函数构造临时"This is the message"
。然后将临时用于复制构造函数以构造c
。这取决于复制省略(临时可能不存在)。
ClassWithAMessage c("This is the message");
是直接初始化。转换构造函数是直接使用的。
不是真正的习语,只是构建对象的不同方式。