/*
* B站学习--[106 - ]
* day13 学习成果
*/
/*
*
* 4.2 对象初始化和清理
*
*
* 4.2.1 构造函数和析构函数
*
* 构造函数:用于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。
* 析构函数:用于对象销毁前系统自动调用,执行一些清理工作。
*
* 构造函数语法:类名(){}
* 1.没有返回值也不写void;
* 2.函数名与类名相同;
* 3.构造函数可以有参数,因此可以发生重载;
* 4.程序在调用对象时会自动调用构析,无须手动调用,而且只会调用一次。
*
* 析构函数语法: ~类名(){}
* 1.没有返回值也不写void;
* 2.函数名与类名相同,名称前加上符号~;
* 3.构造函数不可以有参数,因此不可以发生重载;
* 4.程序在对象销毁前会自动调用析构,无须手动调用,而且只会调用一次。
*
*
* 4.2.2 构造函数的分类及调用
*
* 两种分类方式:
* 1.按参数分为:有参构造和无参构造
* 2.按类型分为:普通构造和拷贝构造
* 三种调用方式:
* 1.括号式
* 2.显示式
* 3.隐式转换法
*
*
*
*
*/
#include<iostream>
#include<string>
using namespace std;
//对象的初始化和清理
//1.构造函数 进行初始化操作
class Person {
private:
string name;
int age;
public:
//1.1构造函数
Person() {
cout << "构造函数自动调用" << endl;
}
Person(string name,int age) {
this->name = name;
this->age = age;
}
//1.2析构函数 进行清理的操作
~Person(){
cout << "析构函数自动调用" << endl;
}
};
//2.析构函数 进行清理的操作
void test01() {
Person p;
}
int main() {
test01();
system("pause");
return 0;
}