我在一个微控制器上(这意味着我只能分配静态内存)并且我正在尝试使用继承.....
假设我有一个抽象类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
}
那么这种静态内存问题有成语之类的吗?