class array{
public:
array(int _len=0):len(_len){
cout<<"array of size "<<len<<" constructured"<<endl;
ele=new int[len];
}
virtual ~array(){
cout<<"array of size "<<len<<" destructured"<<endl;
delete[] ele;
}
int len;
int* ele;
};
但是,当使用这个类时,出了错误:
int main(int argc, char *argv[])
{
array a;
a=array(12);
a=array(2);
return 0;
}
程序异常终止,我单步调试了一下,发现C++竟然是先调用 array(12)再调用 ~array()的!!