析构函数

本文深入探讨了C++中构造函数和析构函数的使用,包括不同类型的构造函数(如默认构造函数、带参数构造函数)的定义与应用,以及析构函数在资源清理中的关键作用。通过具体的代码示例,展示了如何在类中实现这些函数,并解释了它们在对象生命周期中的自动调用机制。
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
class student
{
  public:
        //定义构造函数,带参数的构造函数 
        //方法1
        /*
    student(int n,string nam,char s)
    {
     num=n;
     name=nam;
     sex=s;
     cout<<"Constructor called."<<endl;
    }
    */
    // 方法2,参数初始化表对数据成员进行初始化 
  //  student(int n,string nam,char s):num(n),name(nam),sex(s){} 
    // 方法3,使用默认参数构造函数 
    student(int n=20,string nam="tangcong",char s='M');
    /*
    析构函数,在类名前加一个~,析构函数的作用并不是删除对象,而是在撤销对象占用的内存之前
    完成一些清理工具,析构函数没有函数类型,也没有函数参数,所以
    不能重载,也没有返回值,一个类可以有多个构造函数,但是只能有一个
    析构函数。
    析构函数的作用不公限于释放资源方面,它还可以被用来执行“用户希望在最后一次
    使用对象之后所执行的任何操作,如输出有信息。
    */ 
    ~student( )
    {
     cout<<"Destructor called."<<num<<endl;
     puts("");
    }
    //当对象的生命期结束时,会自动执行析构函数。 
    void display( )
    {
       cout<<"num: "<<num<<endl;
       cout<<"name: "<<name<<endl;
       cout<<"sex: "<< sex <<endl<<endl;
    }
    void set( )
    {
       cin>>num;
       cin>>name;
       getchar();
       cin>>sex;
    }
    private:
        int num;
        string name;
        char sex;
};
student::student(int n,string nam,char s)
{
      num=n;
      name=nam;
      sex=s;
}
void fun( )
{
    student stud1(0,"peter");
    stud1.display();
    //stud1.set();
    //stud1.display();
    student stud2(18,"congcong",'M');
    stud2.display();
}
    
int main( )
{
    fun();
   // stud2.set();
    //stud2.display();
    system("pause");
    return 0;
}
     

转载于:https://www.cnblogs.com/tangcong/archive/2011/06/09/2076247.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值