我有這實際上是指向一個派生類這樣C++通過引用傳遞對象和鑄造
Base *b = new Derived()
我想知道的基類的一個目的,是有可能通過基類指針通過引用一些可以將對象轉換回Derived類的函數。這樣
Dummy_cast_fn(&b) // casts b to derived class
什麼叫Dummy_cast_fn
後,b
應該有派生類(無切片)的完整副本。
編輯 我不明白自指針使用以來沒有切片的部分。我的問題是Derived類從函數調用返回到共享庫,並且我無權訪問Derived的.h文件。我僅有的信息是Derived基於Base類。我有權訪問Base.h,因此我可以實例化一個Base對象,但是當我嘗試訪問在Derived中定義的函數但不在Base中時出現問題。所以我想知道是否可以對基類派生類型進行類型轉換,然後我將能夠訪問在Derived中定義的函數,而不是在Base中。
你想要一個完整的副本,或對原始的引用? – justin
除非您將指針存儲在某處,否則爲什麼您要通過指針?相反,通過引用傳遞... –
我想要Derived的完整副本。 –