关于析构函数

学习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之后可以看到析构函数的输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值