2015-02-10 102 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) 

如果在你的基類中沒有默認構造函數,那麼它會給你錯誤'沒有合適的默認構造函數可用'。