本文内容摘录自:从零开始学C++程序设计,仅作为入门使用。
构造函数可以用于对象初始化的工作。
也就是在声明对象后希望能设置对象中数据成员的初值,可以使用构造函数来声明。
析构函数用于在对象生命周期结束时释放对象所占用的内存空间。
构造函数具有以下四个特性:
- 构造函数的名称必须与类名称相同
- 不需要指定返回类型,没有返回值
- 当对象被创建时自动产生默认的构造函数,默认的构造函数不提供参数行
- 构造函数可以有重载功能
#include <iostream>
#include <stdlib.h>
using namespace std;
class Student
{
private:
int StuID;
float English, Math, Total, Average;
public:
Student();
Student(int id, float E, float M) {//声明构造函数
StuID = id;
English = E;
Math = M;
Total = E + M;
Average = (E + M)/2;
cout<<"------------------------"<<endl;
cout<<"学生学号:"<<StuID<<" "<<endl;
cout<<"英语成绩:"<<E<<endl;
cout<<"总分是"<<Total<<"分,平均是"<<Average<<"分"<<endl;
}
};
int main()
{
Student stud1(920101, 80, 90);
Student stud2(920102, 60, 70);
cout<<"------------------------"<<endl;
return 0;
}
析构函数:
析构函数在对象生命周期结束后在内存中执行清除与释放对象的操作。它的名称必须与类名称相同,且必须在前面加上“~”符号,不能有任何参数行。声明语法如下:
~类名称()
{
//程序主体
}
析构函数具备以下四个特性:
析构函数不可以重载,一个类只能有一个析构函数。
析构函数的第一个字符必须是~,其余则与该类的名称相同。
析构函数不含任何参数,也没有返回值。
当对象的生命期结束时或是通过delete语句将new语句分配的对象释放时,编译程序将会自动调用析构函数。
#include <iostream>
#include <stdlib.h>
using namespace std;
class testN {
int no[20];
int i;
public:
testN() {
int i;
for(i = 0; i < 10; i++) {
no[i] = i;
}
cout<<"构造函数执行完成。"<<endl;
}
~testN() {
cout<<"析构函数被调用,\n显示数组内容。";
for(i = 0; i < 10; i++) {
cout<<no[i]<<" ";
}
cout<<"\n"<<"析构函数已执行完成。"<<endl;
}
};
int show_result()
{
testN test1;//对象离开程序区块前会自动调用析构函数
return 0;
}
int main()
{
show_result();
return 0;
}