【发布时间】:2014-03-01 08:12:55
【问题描述】:
我有一些像这样使用向量的简单函数(伪代码):
void someFunc(void) {
std::vector<std::string> contentVector;
// here are some operations on the vector
// should I call the clear() here or this could be ommited ?
contentVector.clear();
}
我应该调用 clear() 还是可以省略?
【问题讨论】:
-
析构函数将处理清理。 :)
-
比能好,应该省略!!这就是析构函数和 RAII 的全部意义所在。让析构函数处理清洁,你无事可做。很棒,不是吗?
-
这个问题展示了 C++ 的杀手级特性:RAII。在设计良好的对象中,对象的资源与对象的生命周期相关联,这在语言中得到明确支持。