学习C++的类时,写了如下的程序
class Student
{
private:
int num;
string name;
char sex;
public:
Student(int n,string nam,char s) //带有参数的构造函数
{
cout<<"Constructor called."<<endl;
num=n;
name=nam;
sex=s;
}
~Student() //析构函数
{
cout<<"Destructor called."<<num<<endl;
// system("pause");
}
void display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
} ;
int main()
{
Student stud1(1,"Lily",'f');
stud1.display() ;
//system("pause");
return 0;
}
运行结果如下
发现并没有析构函数的输出。
原因以及解决方案:
运行结果中的【请按任意键继续。。。】是由于调用了system("pause").对于C++,析构函数的调用是在main函数最后语句执行完毕后才进行的,所有在【请按任意键继续。。。】后面还有析构函数的输出,只是看不到。
将system("pause")放在析构语句的cout之后可以看到析构函数的输出