第一章5.txt
来自「本书在复习C++基础知识后」· 文本 代码 · 共 48 行
TXT
48 行
#include <iostream.h>
#include <string.h>
class CName
{
public:
CName()
{
strName = NULL;
}
CName( char *str )
{
strName = (char *)new char[strlen(str)+1];
strcpy( strName, str ); // 复制内容
}
CName( CName &one ) // A:显式的默认拷贝构造函数
{
// 为strName开辟独立的内存空间
strName = (char *)new char[strlen(one.strName)+1];
strcpy( strName, one.strName ); // 复制内容
}
CName( CName &one, char *add) // B:带其他参数的拷贝构造函数
{ // 为strName开辟独立的内存空间
strName = (char *)new char[strlen(one.strName) + strlen(add) +1];
strcpy( strName, one.strName ); // 复制内容
strcat( strName, add); // 连接到strName
}
~CName()
{
if (strName) delete []strName;
strName = NULL; // 一个好习惯
}
char *getName()
{
return strName;
}
private:
char *strName; // 字符指针,名称
};
int main()
{
CName o1("DING"); // 通过构造函数初始化
CName o2(o1); // 通过显式的默认拷贝构造函数来初始化
cout<<o2.getName()<<endl;
CName o3(o1, " YOU HE"); // 通过带其他参数的拷贝构造函数来初始化
cout<<o3.getName()<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?