Q
抽象類之間的組合
2
A
回答
4
是:
class A
{
virtual ~A() = 0;
};
class B
{
virtual ~B() = 0;
A* mA;
};
你被允許有一個指針來抽象類型。
0
您可以使用指針或對其他類的引用。例如:
class A {
public:
virtual void m() = 0;
virtual ~A() { }
};
class B {
public:
virtual void m() = 0;
virtual ~A() { }
private:
boost::scoped_ptr<A> a;
};
在C++ 11可以使用std::unique_ptr
代替。請注意,這使得B
不可複製,這對使用子類型多態的類來說有點常見。
+0
您宣佈爲私人會員;由於B是抽象的,難道不是要宣佈它是受保護的嗎? – Ale
相關問題
- 1. MustInherit和抽象類之間的區別
- 2. python抽象基類,mixin和抽象方法之間的區別
- 3. 在抽象類之間傳遞數據
- 4. 抽象類數組
- 5. XSD:抽象類集合
- 6. 如何聚合抽象類?
- 7. 抽象數據類型和對象之間的區別
- 8. 抽象類擴展和普通類之間的區別延伸
- 9. java - 抽象類和具體類之間的獨特區別
- 10. 抽象類中的方法的外部抽象和局部抽象之間有什麼區別?
- 11. 使用抽象類中抽象類的引用抽象類c
- 12. 傳遞對象在活動之間延伸抽象類
- 13. 抽象類中的動態抽象類
- 14. 抽象基類的抽象子類
- 15. 抽象模型之間的Django外鍵
- 16. 抽象類和靜態類之間有什麼區別?
- 17. C++中的抽象類和類組織
- 18. JSF組件庫之前的抽象
- 19. 合同類別應爲抽象類別
- 20. 抽象與抽象類
- 21. 抽象類和接口之間的技術區別
- 22. 我需要幫助瞭解抽象類之間的關係
- 23. 抽象類和接口之間的區別?
- 24. 提供訪問抽象類的集合
- 25. Spring MVC的抽象類結合
- 26. 具有零參數的抽象類和沒有參數的抽象類之間有什麼區別?
- 27. 使用的類,抽象,接口組合擴展
- 28. 如何註釋抽象類實例的組合?
- 29. 從非抽象類派生抽象類
- 30. 抽象基類有抽象嵌套類
它不是A和B之間的聚合嗎? mA不住在B之外嗎?爲了建立毫安的一生的責任問候B,我應該把B ::〜B {刪除mA;} ...這是否正確? (如此虛擬〜B()而不虛擬〜B()= 0) – Ale
不是必需的。責任是一個邏輯事物。您不必在B內部創建mA。您可以從外部指派它,並委託責任將其摧毀到課外。 –