#include <iostream>
#include <string>
class MyClass {
public:
// 默认构造函数
MyClass(const std::string& value) : data(value) {
std::cout << "Constructor called for: " << data << std::endl;
}
// 拷贝构造函数
MyClass(const MyClass& other) : data(other.data) {
std::cout << "Copy constructor called for: " << data << std::endl;
}
// 析构函数
~MyClass() {
std::cout << "Destructor called for: " << data << std::endl;
}
// 成员函数,用于打印数据
void printData() const {
std::cout << "Data: " << data << std::endl;
}
private:
std::string data;
};
int main() {
MyClass obj1("Original Object");
// 调用拷贝构造函数
MyClass obj2 = obj1;
obj1.printData();
obj2.printData();
return 0;
}
默认构造函数:MyClass(const std::string& value) 是类 MyClass 的构造函数,它接受一个字符串参数并初始化成员变量 data。同时,它会输出一条消息表示构造函数被调用。
拷贝构造函数:MyClass(const MyClass& other) 是拷贝构造函数,当创建一个新对象并用另一个对象进行初始化时,会调用这个构造函数。它会将传入的对象的 data 成员复制到新对象中,并输出一条消息表示拷贝构造函数被调用。
析构函数:~MyClass() 是析构函数,在对象生命周期结束时自动调用,用于清理资源。这里它只是输出一条消息表示析构函数被调用。
成员函数:printData() 用于打印成员变量 data 的值。
主函数:
obj1 的对象,调用默认构造函数。MyClass obj2 = obj1; 创建了 obj2,这会调用拷贝构造函数,将 obj1 的内容复制给 obj2。obj1 和 obj2 的 printData() 函数来显示它们的数据。通过这个例子,你可以看到拷贝构造函数在对象复制时的作用。
上一篇:c++基本语法
下一篇:c++ 优先队列
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站