题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。
1 class CMyString 2 { 3 public: 4 CMyString(char *pData=NULL);//构造函数 5 CMyString(const CMyString& str);//拷贝构造函数 6 ~CMyString();//析构函数 7 private: 8 char* m_pData;//数据域,字符指针 9 };
关注如下几点:是否把返回值类型声明为该类型的引用,并在函数结束前返回实例的自身引用。是否把传入的参数的类型声明为常量引用。是否释放实例自身的内存。是否判断传入的参数和当前的实例是不是同一个实例。
1 #include "stdafx.h" 2 #include<string> 3 class CMyString 4 { 5 public: 6 CMyString(char* pData = NULL); 7 CMyString(const CMyString& str); 8 ~CMyString(void); 9 10 CMyString& operator = (const CMyString& str); 11 12 void Print(); 13 private: 14 char* m_pData; 15 }; 16 17 CMyString::CMyString(char* pData) 18 { 19 if(pData == NULL) 20 { 21 m_pData = new char[1]; 22 m_pData[0] = '