#include<iostream>
#include<string.h>
using namespace std;
class String{
char *text;//一个char类型的指针
public:
String(const char *str);//构造函数
~String(){
cout << "enter 'String::~String',text=>" << text << endl;
delete[] text;
}//析构函数
void printStr() { cout << text << endl; }
};
String::String(const char*str){
cout << "enter 'String::String',str=" << str << endl;
text = new char[strlen(str) + 1];
strcpy(text, str);
}
int main(){
String str1("ald11");
String str2("s22g22");
str1.printStr();
str2.printStr();
cout << "ending main!" << endl;
system("pause");
return 0;
}
因为你程序还没退出啊。变量还在生命周期内,当然不会调用析构函数。
执行到system("pause")代码,程序暂停了,还在main函数内,所以变量还没被系统回收