#include <iostream>
using namespace std;
class CRoom
{
public:
char* name;
int number;
// 构造函数(复制)
CRoom(CRoom &room)
{
this->name = room.name;
this->number = room.number;
}
// 构造函数
CRoom(const char* t_name, int t_number) : number(t_number)
{
// 得到输入字符长度
int len = strlen(t_name);
// 动态申请内存
name = new char[len + 1];
// 字符串置零
memset(name, 0, len + 1);
// 赋值
strcpy(name, t_name);
}
// 析构函数
~CRoom()
{
// 输出
cout << name << endl;
// 删除构造函数中申请的内存
delete[] name;
}
};
void test_main()
{
// 对象初始化
CRoom room_2("Huicui", 1002);
// 对象的复制
CRoom room_3(room_2); // 拷贝构造函数
int len = strlen(room_3.name); // 得到字符串长度
room_3.name = new char[len + 1]{ 0 }; // 动态申请内存
strcpy(room_3.name, room_2.name); // 字符串赋值
// 对象的赋值
CRoom room_1 = room_2;
len = strlen(room_1.name); // 得到字符串长度
room_1.name = new char[len + 1]{ 0 }; // 动态申请内存
strcpy(room_1.name, room_2.name); // 字符串赋值
}
int main()
{
test_main();
return 0;
}