我有一個抽象類,名爲UIElement
。它的子類爲Button
,Checkbox
,List
。在基類中存儲引用
這些子類的構造函數都有一個Renderer&
參數:
Button(Renderer& renderer) : _renderer(renderer){};
CheckBox(Renderer& renderer) : _renderer(renderer){};
List(Renderer& renderer) : _renderer(renderer){};
我想不會有路過Renderer&
每個子類,因爲渲染對象應該是提供給這些子類繼承UIElement
。
我不知道如何在不通過構造函數的情況下給UIElement
Renderer&
。這可能嗎?
編輯:我們只是假設的代碼看起來是這樣的,所以我們可以從側面討論移動:
Button(Renderer& renderer) : UIElement(renderer){};
CheckBox(Renderer& renderer) : UIElement(renderer){};
List(Renderer& renderer) : UIElement(renderer){};
什麼是_renderer,UIElement是否包含Renderer和數據成員? – juanchopanza
@juanchopanza'_renderer'是子類的成員變量,它被定義爲'Renderer&_renderer'。 UIElement當前不包含「渲染器」。 –
基類的構造函數應該初始化引用,但語法不會少。 –