错误 C2512:'Building':没有合适的默认构造函数可用
Posted
技术标签:
【中文标题】错误 C2512:\'Building\':没有合适的默认构造函数可用【英文标题】:error C2512: 'Building' : no appropriate default constructor available错误 C2512:'Building':没有合适的默认构造函数可用 【发布时间】:2014-03-29 03:58:24 【问题描述】:class Building
private:
int floor;
public:
Building(int s) floor = s;
;
int Main()
Building twin, star;
Building BlueHouse(5), JangMi(14);
我编写了这段代码,当我构建代码时出现“错误 C2512:‘正在构建’:没有合适的默认构造函数可用’。从我开始学习 c++ 到现在才几个星期,我过得很辛苦;
【问题讨论】:
【参考方案1】:当你写作时:
Building twin, star;
这意味着使用默认构造函数创建twin
和star
,因为您没有提供任何初始化程序。但是你没有定义默认构造函数,所以这是一个错误。
要解决这个问题,请添加一个默认构造函数,例如在class Building
的public
部分内:
Building(): floor(0)
请注意,我在构造函数中使用了初始化变量的语法,当floor
只是一个int
时,这实际上与Building() floor = 0;
相同,但是如果您有其他类类型的成员变量,那么有区别。
或者,您可以为现有构造函数添加默认值:
Building(int s = 0): floor(s)
【讨论】:
以上是关于错误 C2512:'Building':没有合适的默认构造函数可用的主要内容,如果未能解决你的问题,请参考以下文章
错误 C2512:没有适当的默认构造函数可用 - 为啥在构造函数中初始化属性?
创建 std::promise<std::tuple<T>> 时出现错误 C2512(仅限 Visual Studio)