【发布时间】:2010-08-07 12:39:15
【问题描述】:
我看到一个使用函数的例子:在cpp中删除,我没有完全理解。 代码是:
class Name {
const char* s;
//...
};
class Table {
Name* p;
size_t sz;
public:
Table(size_t s = 15){p = new Name[sz = s]; }
~Table { delete[] p; }
};
命令的具体操作是什么:delete[] p;?
我认为目的是删除容器表中的所有指针。
delete[] 中的括号给我一个线索,它删除了指向 Name 的指针数组,但未指定数组的大小,那么析构函数如何“知道”要删除多少个指针?
【问题讨论】:
-
"所有指针" - 注意
Table只包含一个指针。它是一个指向动态分配数组Name的指针,但只有一个动态创建的对象(数组)需要释放。
标签: c++ arrays delete-operator