【发布时间】:2013-03-04 05:25:04
【问题描述】:
我有以下向量:
std::vector<xml::Node *> *children;
在我的析构函数中,我需要在子元素中Node * 指向的元素上显式调用delete。所以我做了以下事情:
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
我该如何纠正这个问题?
【问题讨论】:
标签: c++ memory-management syntax-error