2015-02-10 61 views
-5
DemoApplication::DemoApplication() : BaseApplication("DemoApplication"), 
    m_var1(false), 
    m_var2(false) 
{ 
........ 
} 

现在我需要添加一个具有参数的构造函数。添加新的构造函数C++

DemoApplication::DemoApplication(myParam1) 
{ 
........ 
} 

我得到“没有适当的默认构造函数可用”。

+0

你打算如何调用构造函数?向你的问题添加更多的代码会很有用。 – emlai 2015-02-10 11:40:49

回答

4

假设错误消息来自构造函数的定义,它是指一个或多个BaseApplicationm_var1m_var2没有一个默认的构造函数,所以需要在构造函数的初始化器列表进行初始化,就像你做在默认的构造函数中。

+0

我的赌注的确在'BaseApplication'上。 – 2015-02-10 11:44:03

0

施工总是从基础班开始。如果有多个基类,则从最左边开始。 (注意:如果存在虚拟继承,则给它更高的优先级)。

如果您还没有明确调用基类的构造函数,那么将会调用基类的默认构造函数。

DemoApplication::DemoApplication(myParam1) 

如果在你的基类中没有默认构造函数,那么它会给你错误'没有合适的默认构造函数可用'。