看看下面的Reset
函数。我知道调用this
的构造函数和析构函数可能会很危险,但在下面的使用中我真的找不到错误。我在这里问这是因为我找不到与Google有关的任何材料。我所能找到的是,不要在另一个构造函数中调用构造函数,我显然同意这一点。但是,在构造函数的析构函数后面调用构造函数不是很安全吗?在析构函数中调用成员函数后的构造函数
template<typename T>
class Array{
private:
T* m_p;
Array(const Array&);
Array& operator=(const Array&);
public:
Array(){
m_p=0;
}
Array(int length):
m_p(new T[length]){}
~Array(){
delete[] m_p;
}
void Reset(int length){
this->~Array();
new(this) Array(length);
}
};
相关:[我可以得到一个新的开始在C++没有失败再次?](http://stackoverflow.com/q/8829548/33499) – wimh