//析构函数和构造函数是相对应的
//类里的构造函数用于创建对象
//析构函数在类中有且只有一个,用于撤销创建的对象
//在main函数体中创建类变量的过程就包含了构造函数创建好的对象的建立与释放
析构函数的具体用法如下列代码所示
class Person
{
public:
Person()
{
cout << "母类Person构造函数被调用了!" << endl;
}
~Person()
{
cout << "母类Person析构函数被调用了!" << endl;
}
private:
char *name;//指针私有变量,姓名
int age;//年龄
char*add;//地址
};
class student :public Person//派生类student公有继承
{
public:
student()
{
cout << "派生类student的构造函数被调用了" << endl;
}
~student()
{
cout << "派生类student的析构函数被调用了" << endl;
}
private:
char*department;//所在系
int level;//年级
};
class teacher :public Person//继承自母函数Person的派生类teacher公有继承
{
public:
teacher()
{
cout << "派生类teacher的构造函数被调用了!" << endl;
}
~teacher()
{
cout << "派生类teacher的析构函数被调用了!" << endl;
}
};
int main()
{
Person per1;
student stu1;
teacher tea1;
类函数调用,利用定义好的函数变量用.点来访问其中的构造函数和析构函数
//per1.~Person();
//stu1.~student();
//tea1.~teacher();
system("pause");
return 0;
}
在mian函数体中创建类变量的同时,已经用到了构造对象(当前类调用时)撤销对象(当前类释放继续执行下一个类变量命令)
如果试图用类变量来访问类中函数,只能访问到析构函数,main函数中被注释的代码即为
//类函数调用,利用定义好的函数变量用.点来访问其中的构造函数和析构函数
per1.~Person();
stu1.~student();
tea1.~teacher();
不主动访问析构函数的运行结果表明,类变量里的析构函数也被调用了
如果加上主动访问析构函数