#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