はきだめC/C++下級者の質問箱
レス数が950を超えています。1000を超えると書き込みができなくなります。
0953デフォルトの名無しさん
2006/08/09(水) 02:01:07ポインタ取っ払って直接インスタンス持つ様にできる状況を考えてみれ。
new してるってことは動的にメモリを確保してるってことで、それに用が無いなら、new も delete も必要ない。
class A {
int dummyMember;
public:
A():
dummyMember(0)
{}
~A(){}
};
class B {
A a0;
A a1;
A array[10];
public:
B(){}
~B(){}
}
int main(int argc, char* argv) {
A instanceA;
B instanceB;
return 0;
}
上のコードでは、instanceAもinstanceBもスタック上に作られてるからnewはいらない。
クラスBの中身の a0, a1, array[] は、Bの中に含まれている。個別にnewする必要はない。
instanceAもinstanceBもreturnで抜ける際に勝手にそれぞれのデストラクタが呼び出される。
当然deleteもいらない。
レス数が950を超えています。1000を超えると書き込みができなくなります。