3
我正在使用一些像這樣定義的第三方庫類。我如何聲明一個指向共享公共接口的不同類的指針?
class A : public Interface1, public Interface2 {};
class B : public Interface1, public Interface2 {};
它們不共享一個公共基類。是否可以聲明一個可以引用A類和B類的單一指針類型?
請注意,我使用的是第三方庫,並且不能重新定義A和B.如果我能那麼我會做到這一點:
class Base : public Interface1, public Interface2 {};
class A : public Base {};
class B : public Base {};
,然後我可以簡單地用一個指針基類。
Base *pBase;
公共基類是* * Interface1 * *或* Interface2。如果你不能重構代碼,那麼真的沒有辦法繞過它。你應該使用哪一個取決於情況和你目前需要的。 –
我並不是建議使用它,但'void *'可以引用任何東西。也可以創建一個「指針」類,這個類可以同時擁有兩種類型。 – Steeve