次のベクトルがあります。
std::vector<xml::Node *> *children;
私のデストラクタでは、子delete
の要素が指す要素を明示的に呼び出す必要がありNode *
ます。だから私は次のことをします:
std::cout << "xml::Element destructor" << std::endl;
if(children != NULL) {
if(n_children() > 0) {
for (int i = 0; i < n_children(); i++) {
delete children[i];
}
}
delete children;
}
しかし、次のエラーが表示されます。
oops.cpp: In destructor ‘virtual xml::Element::~Element()’:
oops.cpp:277:42: error: type ‘class std::vector<xml::Node*>’ argument given to ‘delete’, expected pointer
どうすればこれを修正できますか?