构造函数 & 析构函数

说明:完成对象的初始化和清理工作,由编译器强制要求。如果不提供构造和析构函数,编译器会提供,但都是空实现

析构和构造是一对相反的过程,对象被创建时调用构造函数,对象被销毁时调用析构函数

1
2
3
4
5
6
7
8
9
class Person {
public:
Person() {
std::cout << "Person 的构造函数" << std::endl;
}
~Person() {
std::cout << "Person 的函数" << std::endl;
}
};

构造函数

作用:初始化对象,创建对象时为对象的成员属性赋值,由编译器自动调用,无需手动调用

语法: 类名(参数){函数体}

遵循规则:

  1. 函数名必须与类名相同
  2. 没有返回值,也不写void
  3. 可以有参数,因此可以发生重载
1
2
3
4
5
6
class Person { 
public:
Person() {
std::cout << "Person 的构造函数" << std::endl;
}
};

析构函数

作用:释放对象,对象销毁前系统自动调用,无需手动调用

语法: ~类名(){函数体}

遵循规则:

  1. 函数名必须与类名相同
  2. 没有返回值,也不写void
  3. 不可以有参数,因此不可以发生重载
1
2
3
4
5
6
class Person {
public:
~Person() {
std::cout << "Person 的析构函数" << std::endl;
}
};