09/01/22 21:36:22 bwn6GYvR
>>619
あせらないで、じっくり理解してください。
1. インスタンスは一つだけではなく、メモリが許すかぎり何個でも作れます。
CutilBのインスタンスにしろ、たくさん作れます。
そして、それぞれのインスタンスが独自のパラメータを持てるので、
インスタンスごとに初期化が必要になります。
newでやろうとinit()みたいなメンバを自分で用意しようと構いませんが、負担(?)は変わりません。
2. コンストラクタはインスタンス生成時に自動的に呼び出されます。
CUtilB myUTilbB; // この時点で CUtilB()で初期化されたインスタンスが作られている。
3. >>620 の言うように、「スコープ」というものが関わってきます。
C++では関数内で宣言した変数はスタックフレームに、
グローバル領域で宣言した変数は???(シラネ)に、
newやmallocで宣言した変数はヒープに作られます。
関数内で宣言した変数は、(通常は)関数に入ったときに作られ、処理が関数を抜けた時点で消失します。
だから、いつでも存在しているというわけでは無いのです。
どこでも使えるようにするにはグローバル変数を宣言する必要がありますが、
名前領域が混乱したり、いつどこが書き換えたかわからなくなるなど、不評が結構あります。
>>621
某オフィスソフトでさえ禁則処理をカスタマイズできるところを見ると、
禁則処理に「これが正しい」なんてのは無いと思う。
例えば、
「俺ってすげーーーーーーーーーーー
ーーーーーーーーーー
ーーーーやつなんだぜっっっっ
っっっっっっっっっっっっっっっっっっわーおッ!!」
って書こうとしても、>>621 の規則だとうまく書けない気がする。