2015-12-08 108 views
0

我正在靠牆試圖記住如何處理繼承。假設我們有一個名爲Fruits的父類/基類,以及名爲Apples的子類/派生類。蘋果只有不同於水果,因爲它有一個額外的變量,稱爲數字。我們將如何實現它,以便默認情況下始終調用父類構造函數,並使用值「Apples」(名稱)和SNACK(類型)?C++繼承:調用父類構造函數

水果將被實現爲這樣的(

Fruits::Fruits(string name, KIND type): myName(name), myKind(type) 
{} 

如何將蘋果來實現,這樣,如果蘋果稱爲蘋果()則默認名稱爲「蘋果」和型零食,具有數〜5 ? 這是正確的

Apples::Apples() : Fruits("Apple", SNACK) 
{ 
    number = 5; 
} 
Apples::Apples(int num) : FoodItem("Pancakes", BREAKFAST) 
{ 

} 
+1

請您談一下蘋果和水果,但我看到的是煎餅和FoodItem。你想介紹一下你的例子嗎? – SergeyA

+0

'Fruit'和'FoodItem'之間的關係是什麼? – Arun

+0

@Arun編輯...犯了一個錯誤! – ohbrobig

回答

1

這種方式是正確的:?

Apples::Apples() : Fruits("Apple", BREAKFAST) 
{ 
    number = 5; 
} 

但這種方式會更好,因爲它更具有可讀性和一致性:

Apples::Apples() : Fruits("Apple", BREAKFAST), number(5) 
{ 
} 
0

我會嘗試這些:

// Default value for number 
Apples::Apples() : Fruits("Apple", SNACK), number(5) 
{ 
} 

// Caller specified value for number 
Apples::Apples(int num) : FoodItem("Pancakes", BREAKFAST), number(num) 
{ 
}