私はマイクロコントローラーを使用しており(つまり、静的メモリ割り当てしかできないことを意味します)、継承を使用しようとしています.....
抽象クラスImage
と抽象クラスがあるとしFont
ます。のインスタンスは、次のように、関数で指定されたのベースオフをFont
返すことができます。Image
char
Font* mf;
Image* image = mf->GetImage("a");
GetImage
ここでの本当の問題は、関数に対して何をすべきかわからないことです。
問題はこれです: C++ では、抽象クラスのメンバーを持つためには、それをポインターとして使用する必要があります。したがって、私のジレンマはFont
、新しいを作成してImage
から返したいということです。
新しく作成されたオブジェクトへのポインターを返す場合はImage
、一時オブジェクトへの参照を返しています。
Image* FontImpl::GetImage(char c){
return &ImageImpl(c); //This object is destroyed once this function exits
}
そして、私が戻った場合、次のような実際の型を返そうとします:
Image FontImpl::GetImage(char c){
return ImageImpl(c); //Cannot cast from ImageImpl to Image
}
では、この種の静的メモリの問題にはイディオムか何かがありますか?