查阅资料,结合程序实例,分析说明类的构造函数、拷贝构造函数和析构函数的执行情况
时间: 2024-03-21 20:43:05 浏览: 70
构造函数与析构函数.docx
类的构造函数是在创建对象时被调用的特殊成员函数,用于初始化对象的数据成员。拷贝构造函数是一种特殊的构造函数,用于以一个已存在的对象作为模板,创建一个新的对象。析构函数则是在对象被销毁时自动调用的函数,用于释放对象占用的资源。
下面是一个简单的程序,演示了类的构造函数、拷贝构造函数和析构函数的执行情况:
```c++
#include <iostream>
using namespace std;
class MyClass {
public:
// 构造函数
MyClass() {
cout << "构造函数被调用" << endl;
}
// 拷贝构造函数
MyClass(const MyClass& other) {
cout << "拷贝构造函数被调用" << endl;
}
// 析构函数
~MyClass() {
cout << "析构函数被调用" << endl;
}
};
int main() {
MyClass obj1; // 创建一个对象,调用构造函数
MyClass obj2(obj1); // 以obj1作为模板,创建一个新的对象obj2,调用拷贝构造函数
return 0; // obj2先被销毁,调用析构函数,然后obj1被销毁,再次调用析构函数
}
```
输出结果为:
```
构造函数被调用
拷贝构造函数被调用
析构函数被调用
析构函数被调用
```
从输出结果可以看出,当我们创建一个对象时,会先调用构造函数初始化对象的数据成员;当我们以一个已存在的对象作为模板创建一个新的对象时,会调用拷贝构造函数;当对象被销毁时,会调用析构函数释放对象占用的资源。值得注意的是,在程序结束时,所有对象都会被销毁,它们的析构函数也会被自动调用。
阅读全文