簡単な質問のようですが、私は疑問です。演算子で作成された空でないリストを呼び出すと、演算子はすべてdelete
の要素を破棄しますか?確かにそうなりますが、確認が必要です。ご覧のとおり、コンストラクターはありますが、ディストリビューターはありません。 Object
delete list
new
Object
コード:
std::list<Object>* ptr_listObjects = new std::list<Object>();
OtherObject* ptr_null = NULL;
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
ptr_listObjects->push_back ( Object( ptr_null, 'A') );
delete ptr_listObjects; // no any possible memory leaks? (Object does not use `new` operator)
class Object
{
public:
Object( OtherObject* ptr_other, char xxx):
ptr_OtherObject(ptr_other),
charflag(xxx)
{}
OtherObject* ptr_OtherObject;
char charflag;
};