我正在試圖獲取我的Base類實例並將其轉換爲派生類類型。因爲我只能得到我的基類實例的const引用,所以我很難讓它正確轉換。有人有想法嗎?C++:將基類的const常量引用轉換爲派生類
class Base
{
};
class Derived : public Base
{
};
Base someBaseInstance;
const Base& GetBase()
{
return someBaseInstance;
}
int main()
{
Derived& derived = static_cast<Base&>(GetBase());
return 0;
}
你不能讓一個基地派生。沒有關於如何完成對象的派生部分的信息。 – NathanOliver
如果你的'Base'實例不是'Derived',你爲什麼要把它轉換爲Derived'?這聽起來像是一個XY問題。爲什麼你需要這樣做? – Jack
編譯的劇集將是'const Derived&derived = static_cast(GetBase());'但它只會產生未定義的行爲。你也可以拋棄'const',但這會讓它變得更糟。 –
nwp