在 C++中,类构造函数和析构函数是用于初始化和清理对象的特殊函数。
1. 类构造函数:
类构造函数用于初始化对象的成员变量。当创建一个新的对象时,系统会自动调用相应的构造函数。类构造函数可以被重载,以根据传入的参数执行不同的初始化操作。构造函数的命名规则是:类名 + 关键字“::” + 构造函数名。
示例:
```cpp
class Person {
public:
// 构造函数
Person(const std::string &name, int age) {
this->name = name;
this->age = age;
}
构造函数可以被重载 // 析构函数
~Person() {
std::cout << "Person destroyed." << std::endl;
}
};
```
2. 析构函数:
析构函数用于在对象销毁时清理资源。当对象超出作用域或者使用`delete`关键字删除时,系统会自动调用相应的析构函数。析构函数也可以被重载,以执行清理操作。析构函数的命名规则是:类名 + 关键字“::” + 析构函数名。
示例:
```cpp
class Person {
public:
// 构造函数
Person(const std::string &name, int age) {
this->name = name;
this->age = age;
}
// 析构函数
~Person() {
std::cout << "Person destroyed." << std::endl;
}
};
int main() {
Person *p1 = new Person("张三", 25);
// ...
delete p1;
return 0;
}
```
当程序运行到`delete p1;`时,系统会自动调用`Person`类的析构函数,清理资源。
注意:
- 每个类只能有一个析构函数,但可以有多个构造函数。
- 构造函数和析构函数可以被重载,以根据不同的参数执行不同的操作。
- 在定义类时,如果未提供构造函数和析构函数,编译器会自动为类生成默认的无参数构造函数和析构函数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论