剑指offer代码实现:基本照敲,顺便写写注释和疑问。
第一题:为CMyString类添加赋值运算符函数,代码如下:
1 //============================================================================ 2 // Name : JZ-C-01.cpp 3 // Author : Laughing 4 // Version : 5 // Copyright : Your copyright notice 6 // Description : Hello World in C++, Ansi-style 7 //============================================================================ 8 #include "stdafx.h" 9 #include <string.h> 10 using namespace std; 11 /** 12 *剑指offer面试题1 13 */ 14 class CMyString { 15 public: 16 CMyString(char* pData = NULL); //构造函数 17 CMyString(const CMyString &str); //类似复制构造函数? 18 ~CMyString(void); 19 void print(); //打印 20 CMyString& operator =(const CMyString &str); //赋值运算符重载:返回类型是该类型的引用,这样才可以允许连续赋值:"str=str1=str2"。const:因为在赋值运算符函数内不会改变传入的实例的状态 21 private: 22 char* m_pData; 23 }; 24 CMyString::CMyString(char *pData) { 25 if (pData == NULL) { //若为空 26 m_pData = new char[1]; 27 m_pData = '