取两个只能由new
. 一类是基类,另一类是派生类。派生类只添加方法。
class Base
{};
class Derived : public Base
{};
Base * b = new Base{}
Derived * d = covert( b );
// - or -
Base * b = new Base{};
convert( b ); // converts Base to Derived
Derived * d = dynamic_cast<Derived *>(b);
我想要做的是获取Base
已分配的类数据,并通过某种方法或函数扩展/包装衍生物,convert
.
更新: 为嵌入式系统构建内存是稀缺的,所以我正在尽我所能减少内存分配量。我只是想知道是否有一种方法可以扩展已经分配内存的基类并用派生类包装它。
更多更新: 虽然嵌入式系统是 ARM 并且我目前正在使用 LLVM 编译器,但这在未来可能不是真的。因此,首选符合标准的方式。