1 c++的繼承有public繼承, protected繼承和private繼承
;//公共繼承
class son1 :public base1
};void myclass()
在子類中可以訪問到public和protected 變數和方法,但是在外部只能訪問到public區域, 如果想要修改protected變數只能通過子類的方法來改變
class base1
;//公共繼承
class son1 :public base1
void change_protected_var(int data)
};void myclass()
//保護繼承
class base2
;class son2:protected base2
};void myclass2()
protected繼承和public繼承的區別在於,是否能夠在外部訪問public區域, protected繼承只能在子類內部對public和protected訪問
//私有繼承
class base3
;class son3:private base3
};class grandson3 :public son3
};
private繼承區別在於完全私有的, 子類繼承後不能訪問, 即使m_a和m_b之前是public和protected繼承
public,protected,private 關鍵字, 具體的使用情況不只是和定義有關,也和繼承有關
車輛選擇(繼承)
有乙個汽車類vehicle,它具有乙個需傳遞引數的建構函式,汽車類vehicle中的資料成員為 車輪個數wheels和車重weight放在保護段中,汽車類vehicle中的公有成員函式為 get wheels 返回車輪個數的值 get weight 返回車重的值 wheel load 返回每個輪胎的...
C 設計類選擇繼承或組合
在c 程式設計設計類時,用到其他類的屬性或者方法要明白是用組合還是繼承。組合即是has a,該類擁有哪些屬性或者方法 繼承即是is a,該類擁有父類的屬性或者方法。這裡舉乙個例子,假如有乙個父類汽車,當有轎車 卡車 麵包車等類似的實體時,此時應該選擇繼承,即派生類擁有父類汽車的屬性或者方法 當有發動...
繼承與組合的選擇
1 繼承與組合是重用物件 的機制。2 關於父子類的初始化,請參考初始化列表 不能繼承的函式 l建構函式和析構函式 建構函式與析構函式只負責它所在的那一層上的構建與釋放。子類仍然需要自己的建構函式,也需要手動呼叫父類的自定義建構函式。loperator 理由同上。4 new delete是可以被繼承的...