両方がによってのみ作成できる2つのクラスを取りますnew
。1つのクラスはベースで、もう1つのクラスは派生です。派生クラスはメソッドを追加するだけです。
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コンパイラを使用していますが、これは将来的には当てはまらない可能性があります。したがって、標準に準拠した方法が推奨されます。