ここは私の問題です。過負荷の問題=機能
私はAguiFontというクラスを持っています。内部的には、フォントローダが設定されているフォントの種類を指すポインタを持っています。私は=演算子をオーバーロードして、ユーザーがメモリを管理する必要がないようにしました。
それは1つの状況を除いて素晴らしい作品です。そのコンストラクタでウィジェットのフォントを設定すると、何らかの理由でそのフォントを使用すると、そのポインタのメモリがすでに解放されているために0xfefefeが返されます。メインの関数の中にフォントをいくつか作成しても問題ありません。そして、私はsomeWidget.setFont()を呼び出しても問題ないですが、setFont()を呼び出します。コンストラクタ内で問題が発生します。ここで
AguiFont& AguiFont::operator=(const AguiFont &tmp)
{
loader->destroyFont(nativeFontPtr);
nativeFontPtr = 0;
if(tmp.getFont())
this->nativeFontPtr = loader->loadFont(tmp.getPath().c_str(),tmp.getSize());
this->fontLineHeight = tmp.getLineHeight();
this->fontPath = tmp.getPath();
this->fontSize = tmp.getSize();
return *this;
}
がウィジェットのコンストラクタです::(私はそれが実際に成功するはずのテストフォントをロードする必要があり)
AguiWidget::AguiWidget(void)
{
location = AguiPoint(0,0);
size = AguiSize(0,0);
parentWidget = 0;
dockingStyle = DockingNone;
userData = 0;
opacity = 1.0f;
setFont(AguiFont(std::string("test.ttf"),24));
tintColor = AguiColor(1.0f,1.0f,1.0f,opacity);
fontColor = AguiColor(0.0f,0.0f,0.0f,1.0f);
isWidgetVisible = true;
isWidgetEnabled = true;
isWidgetFocusable = false;
isWidgetTabable = false;
clipChildren = true;
}
おかげ
[このよくある質問](http://stackoverflow.com/questions/4172722/)が興味深いかもしれません。 – fredoverflow
@Fred:=>答え。 –
@Konrad:どういう意味ですか?私のコメントを答えに変換しますか?私はそれについてdownvotesを得るだろうと確信しています:) – fredoverflow