C++相談室 part46
■ このスレッドは過去ログ倉庫に格納されています
0203デフォルトの名無しさん
2006/01/19(木) 19:10:21あなたがやろうとしていることは、C++の流儀には従っていないと思われる。
「こう書けばコンパイルが通るから」という理由で、グローバル変数にするのはやめた方がいい。
void f() {
TEST* test = new TEST();
}
この場合、TEST型へのポインタtestのスコープは、関数f()内である。
(厳密には、testが宣言された次の文から、関数の最後の}まで)
従って、この関数f()の外からtestにアクセスすることはできない。
複数の関数からtestをアクセスしたければ、次のようなオプションが取れる:
1. アクセスしたいすべての関数にtestへのポインタを渡す
2. 関連のある関数をまとめ、testと共にクラス化する
蛇足だが、ZeroMemory()を使うより、_POINT, _TESTのコンストラクタで初期化した方がいいと思う。
■ このスレッドは過去ログ倉庫に格納されています