// C++ 拷贝构造函数示例
#include <iostream>
#include <cstring>
class MyClass {
private:
char* data;
public:
// 构造函数
MyClass(const char* str) {
data = new char[strlen(str) + 1];
strcpy(data, str);
std::cout << "构造函数调用" << std::endl;
}
// 拷贝构造函数
MyClass(const MyClass& other) {
data = new char[strlen(other.data) + 1];
strcpy(data, other.data);
std::cout << "拷贝构造函数调用" << std::endl;
}
// 析构函数
~MyClass() {
delete[] data;
std::cout << "析构函数调用" << std::endl;
}
// 显示数据成员的值
void display() const {
std::cout << "Data: " << data << std::endl;
}
};
int main() {
MyClass obj1("Hello");
obj1.display();
MyClass obj2 = obj1; // 拷贝构造函数在此处调用
obj2.display();
return 0;
}
display 方法:用于显示对象的数据成员。在这个例子中,obj2 是通过 obj1 初始化的,因此会调用拷贝构造函数。
上一篇:c++ long
下一篇:c++ throw
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站