【发布时间】:2017-06-12 23:55:26
【问题描述】:
我有一个名为 Thing 的对象,它的构造函数采用 int。
此代码按预期工作:
Thing thing(5);
但是,我偶然写了以下内容:
Thing thing = Thing(5); // note: no 'new'
得到了错误no matching constructor for initialization of 'Thing'。后一个代码的实际含义是什么?我知道如果我把new 扔进去意味着什么,但没有新的,那是什么意思?
【问题讨论】:
-
这是怎么发生的?我没有在任何地方使用
explicit自己 -
@WhiZTiM
explicit会阻止调用Thing thing = 5。 -
显示
Thing的整个类定义,或者至少显示它的所有构造函数。
标签: c++ constructor initialization language-lawyer