我正在试图获取我的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