08/06/30 05:46:27 MAN7mmN8
>>380
global list<cToken> listToken; // cToken クラスの配列(not cToken* の配列)
{ cToken *tk = new cToken; // (A) cToken* はポインタ型
listToken.push_back(*tk); //(B) *tkを引数としたコピーコンストラクタを起動し、
// 新たに生成したcTokenをlistTokenに追加
// この時点で cToken クラスの実体は2つ。
// (1) (A)でnewしたcToken
// (2) (B)でコピーコンストラクタで生成されたcToken
}
// tkをdeleteしていない…? メモリリークしてますね、きっと。
略
{ list<cToken>::iterator it = listToken.begin(); //itはイテレータ
略
delete(*it); //参照外しした *it は、cTokenクラス扱い
// cToken クラスは cToken* (ポインタ型)とは違うので、delete は イヤン
}
// …みたいな感じー。