析构函数

#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;
}
     

posted on 2011-06-09 12:25  more think, more gains  阅读(234)  评论(0编辑  收藏  举报

导航