[英]C++ Pass inherited class to function expecting base class
我有一個“ D”類,該類具有成員函數“ play”。 游戲應該采用兩個參數,兩個參數均為“ A”類對象。 我還有另外兩個類“ B”和“ C”,它們都從“ A”類繼承(受保護)。 我的程序的結構方式只有一個對象“ B”和另一個對象“ C”傳遞給函數“播放”。 我該如何進行這項工作? 如果傳遞這兩個繼承的對象,則會出現編譯器錯誤:
cannot cast 'B' to its protected base class 'A'
我是否需要將對象轉換回“ A”對象才能將它們傳遞給“播放”對象? 還是可以以某種方式按原樣使用它們?
您可以通過引用傳遞class B
class C
和class C
class B
對象。 例如: void play(A* b,A* c);
因為B
和C
是的子A
,的指針A
可以保持物體。 但是您需要聲明要在Class A
中的Class D
使用的所有B
和C
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.