[過去ログ] 物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術 (1001レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
989
(1): 名前は開発中のものです。 [] 02/06/29 00:37 ID:uNPXzVbU(1/3) AAS
>>976
976(1): 名前は開発中のものです。 [sage] 02/06/28 23:37 ID:??? AAS
>>973
簡単だよ。
class A : public Base, public ISingleton<A> { };
この場合を考えてみな。
すんまそーん、わからんす。
後学の為に教えて。
992
(1): 名前は開発中のものです。 [] 02/06/29 00:58 ID:uNPXzVbU(2/3) AAS
>>991
991(1): 名前は開発中のものです。 [sage] 02/06/29 00:41 ID:??? AAS
>>989
多重継承した場合、
アップキャストしたときにベースポインタ(this)がずれるから、
そのoffset値を算出している。
よくわかりました。ありがとうございます。
というか>>971
971(2): 名前は開発中のものです。 [sage] 02/06/28 19:59 ID:??? AAS
>>967
C++の内部構造はよくわからないが
offsetってのは、その名の通りSingleton<T>クラスのインスタンスのポインタから
Tクラスのインスタンスのポインタへのオフセットだろう。
1って数字は問題じゃない。いくつでもいい、
0で無い事に意味がある。本の受け売りだけどな。
んで、
(T*)((int)this + offset);
は、新たにSingleton<T>クラスのインスタンスが生成されたとして
そのSingleton<T>のインスタンスに属する?Tクラスのインスタンスの位置を
求めてる訳だ。
それをスタティックの箱に入れてやると。
つまりms_Singletonには、最後に生成されたTクラスのインスタンスのポインタが
入ることになる。
・・・と思う。間違ってたら誰かフォローよろしこ。
のソースって、新しくTを作る度に
ms_Singletonの中身がころころ変わりますよね。
何個Tをnewしても、得られる実体は1つだけってのが
シングルトンだと思うんでなんか変なような気がする。
994: 名前は開発中のものです。 [] 02/06/29 01:07 ID:uNPXzVbU(3/3) AAS
>>993
993(1): 名前は開発中のものです。 [sage] 02/06/29 01:00 ID:??? AAS
>>992
クラスインスタンスはSingleton<T>ごとに1つずつ作られる。
Singleton<int>とSingleton<float>は別物。
でも、Singleton<float>とSingleton<float>と
2つ作ったら、その度にms_Singletonは上書きされるだけで
結果、Singleton<float>のインスタンスが2つあることになりませんか?
Singleton<float>の派生クラスへのアクセスは
必ずms_Singletonを介さなければならないとか制限がつくんでしょうか?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s