// 构造函数与析构函数.cpp : Defines the entry point for the console application./
#include "stdafx.h"
#include<iostream>
using namespace std;
class student
{
private:
int num;
char name[10];
char sex;
public:
student(int n,char *na,char s)
{
num=n;
strcpy(name,na);
sex=s;
cout<<"调用了带参数的构造函数"<<endl;
}//构造函数一,代替前例set()函数的作用
student()
{
num=101;
strcpy(name,"wang");
sex='F';
cout<<"调用了不带参数的构造函数"<<endl;
}//重载的构造函数二
~student()
{
cout<<"destructing"<<endl;
}//析构函数,在对象销毁时自动调用
void display()
{
cout<<num<<endl<<name<<endl<<sex<<endl;
}
};
student a(100,"chen",'M');//根据实参个数不同调用构造函数一
student b;//调用构造函数二
void main()
{
a.display();//输出a 的数据成员:100,chen,M
b.display();//输出b的数据成员:101,wang,F
student *c=new student;
delete c;
system("pause");
}//程序结束时输出2行destructing,表明调用了析构函数。
//注意:这里会提示“按任意键继续”,按完后才会看到 2行destructing 一闪而过!!
//输出:
/*调用了带参数的构造函数
调用了不带参数的构造函数
100
chen
M
101
wang
F
调用了不带参数的构造函数
destructing
请按任意键继续. . .
*/
//按了任意键后, 输出2行destructing
#include "stdafx.h"
#include<iostream>
using namespace std;
class student
{
private:
int num;
char name[10];
char sex;
public:
student(int n,char *na,char s)
{
num=n;
strcpy(name,na);
sex=s;
cout<<"调用了带参数的构造函数"<<endl;
}//构造函数一,代替前例set()函数的作用
student()
{
num=101;
strcpy(name,"wang");
sex='F';
cout<<"调用了不带参数的构造函数"<<endl;
}//重载的构造函数二
~student()
{
cout<<"destructing"<<endl;
}//析构函数,在对象销毁时自动调用
void display()
{
cout<<num<<endl<<name<<endl<<sex<<endl;
}
};
student a(100,"chen",'M');//根据实参个数不同调用构造函数一
student b;//调用构造函数二
void main()
{
a.display();//输出a 的数据成员:100,chen,M
b.display();//输出b的数据成员:101,wang,F
student *c=new student;
delete c;
system("pause");
}//程序结束时输出2行destructing,表明调用了析构函数。
//注意:这里会提示“按任意键继续”,按完后才会看到 2行destructing 一闪而过!!
//输出:
/*调用了带参数的构造函数
调用了不带参数的构造函数
100
chen
M
101
wang
F
调用了不带参数的构造函数
destructing
请按任意键继续. . .
*/
//按了任意键后, 输出2行destructing