第一章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 + -
显示快捷键?