我有这堂课:
class stringlist {
public:
typedef std::string str;
void push(str);
void pop();
void print();
void resize(size_t);
size_t capacity();
size_t size();
stringlist() : N(15) {}
stringlist(size_t sz) : N(sz) {}
private:
size_t N;
str* container = new str[N];
};
下面是一个测试类的测试程序:
stringlist slist(16);
slist.push("One");
slist.push("Two");
slist.push("Three");
std::cout << "Capacity: " << slist.capacity() << std::endl;
std::cout << "List size: " << slist.size() << std::endl;
slist.print();
我不确定应该何时以及如何删除动态管理的内存。我需要调用析构函数~stringlist() { delete [] container; }
吗?由于new
用于创建数据成员,我不确定是否允许删除该成员。