我有C類,它繼承自A類和B類。 是否有可能使用此類訪問B類函數(例如fun1())遺產。 A和B都是獨立班級,fun1()僅在班級B中。多繼承。如何訪問1個父類的成員函數到另一個父類
0
A
回答
1
不嚴格通過繼承。雖然A和B是C的父母,但A和B沒有關係,也無法訪問彼此。
它通過繼承和polimorphism是可能的,那麼類A有是c實現調用B中的功能的虛擬方法,像這樣:
class A {
public:
b get_b() { return do_get_b(); }
private:
virtual do_get_b() = 0;
};
class B {
public:
b some_b;
};
class C : public A, public B {
private:
virtual do_get_b() {return some_b;}
}
0
有時候,這是可能的。 An example how to achieve this.
該示例適用於鑽石層次結構,這比您的鑽石層次更復雜一些。用你的術語來說,ClassA和ClassB應該是從Base類派生的,ClassC是從ClassA和ClassB派生的。
0
您可以用dynamic_cast的檢查,看看是否你的一個對象實際上是C的一個對象,因此B如果A和B真的相互獨立,那麼最好找到一個不同的解決方案。
相關問題
- 1. 訪問繼承類的數據成員
- 2. 在python中訪問多個父類的數據成員
- 3. 如何訪問另一個類中的一個類的成員函數?
- 4. Python訪問父類(不繼承)
- 5. PHP類繼承父問題
- 6. 繼承的函數將讀取父類或子類的數據成員?
- 7. C#:繼承一個子類,它從父
- 8. 如何從C++中的父類訪問chid類數據成員
- 9. 居住父類類型的成員在另一個類中
- 10. 從另一個基類的多個繼承和通用訪問一個基類
- 11. 繼承。從父類
- 12. 訪問另一個類的成員
- 13. 從父類調用繼承函數
- 14. 作爲另一個類的成員繼承vs類
- 15. 如何從父對象繼承父對象到另一個父對象?
- 16. 訪問C++父類的私有成員
- 17. 是否有一個訪問修飾符,它允許繼承類修改c#中父類的成員?
- 18. 模板:父類的成員變量在繼承類
- 19. 成員類是否可以從它的父類繼承?
- 20. 如何從另一個繼承類的繼承類的說話
- 21. 從父類中的另一個子類訪問子類
- 22. 如何從另一個類的成員函數中訪問數據成員和成員函數?
- 23. 如何從多個父類繼承相同的名稱變量?
- 24. 如何從父類訪問子函數
- 25. C++子類不能從父類繼承私有成員?
- 26. C#在3D列表中通過父類訪問繼承的成員
- 27. c#繼承多個父母
- 28. Java子類如何繼承受訪問保護的父字段?
- 29. C++訪問繼承類的成員,其中繼承的類是模板參數
- 30. Python類繼承多,與訪問類成員
感謝您的偉大答案。但我並不清楚。 B班內部有什麼「b some_b」的意思。 Y在類A「b get_b()」內實現。 – Sijith 2012-04-25 06:53:05
b some_b是類型b的名爲「some_b」的成員變量 – daramarak 2012-04-25 08:19:01