我想創建一個嵌套類的構造函數,它使用它的構造函數從父類嵌套類繼承。基本上是:C++鑄造指針參考函數參數中的基類指針
DerivedList<T>::DerivedNested::DerivedNested(DerivedNode*& ptr)
: BaseList<T>::BaseNested::BaseNested(ptr)
{}
我BaseNested的構造函數的原型是這樣的:
BaseList<T>::BaseNested::BaseNested(BaseNode*& ptr)
(並且需要得到引用的PTR參數,因爲它需要在其代碼表示指針的地址)
我想我必須將我的DerivedNode *轉換爲BaseNode *,但是:static_cast :: BaseNode *>(ptr)找不到匹配函數,因爲它不是引用,而static_cast :: BaseNode * &>(ptr)給出了無效的轉換錯誤。
dynamic_cast也是如此。 reinterpret_cast編譯,但在執行過程中出現錯誤。
有誰知道我可以怎樣調用該父構造函數?
不可能有兩個引用,一個是類型'DerivedNode *&',另一個是'BaseNode *&'類型,引用同一個指針。指針指針和引用指針與多態性不能很好地協同工作。如果你想要多態行爲,請避免這些事情。 –