我们在定义类的时候编译器会自动创建对赋值运算符的重载,但类似拷贝构造函数,这个重载函数也只是对值的拷贝,如果类中有在堆区开辟的空间则需要实现深拷贝。
1 #include<iostream> 2 using namespace std; 3 4 //定义类型CMyString 5 class CMyString 6 { 7 public: 8 CMyString(char* pData = nullptr); 9 10 //重载赋值运算符 11 CMyString& operator=(const CMyString &str); 12 13 ~CMyString(void); 14 15 private: 16 char* m_pData; 17 }; 18 19 CMyString::CMyString(char* pData = nullptr) 20 { 21 int len = strlen(pData); 22 this->m_pData = (char*)malloc(sizeof(char)*(len + 1)); 23 memset(m_pData, '