class cBase {
virtual void Init();
};
class cData : public cBase {
void Init(){ /*初期化処理*/ };
};
main() {
static char *works=(char*)malloc(1000);
cData *data;
data=(cData*)&(works[50]);
data->Init();
}
こういった感じで別途確保した領域をクラスとして使いたいのですが、->Init()実行時にエラーが出てしまいます。
コンストラクタが実行されていない為に仮想関数のテーブルが作成されていない、と予想しているのですが、
この予想で正しいでしょうか。また、解決法はありますでしょうか。
知恵を貸してください。