#include<iostream>
using namespace std;
class CMyclass
{
public:
CMyclass(char* pDate = NULL) {
m_pData = new char[strlen(pDate) + 1];
strcpy_s(m_pData, strlen(pDate) + 1, pDate);
}
CMyclass(const CMyclass& str) {
m_pData = str.m_pData;
}
~CMyclass(void) { delete m_pData; }
CMyclass& operator =(const CMyclass &str);
void show() { cout << *m_pData << endl; };
private:
char *m_pData;
};
CMyclass& CMyclass::operator= (const CMyclass &str){
if (this == &str) return *this;
delete []m_pData;
m_pData = NULL;
m_pData = new char[strlen(str.m_pData)+1];
strcpy_s(m_pData, strlen(str.m_pData) + 1,str.m_pData);
return *this;
}//方法一
CMyclass& CMyclass::operator= (const CMyclass &str) {
if (this != NULL){
CMyclass temp(str);
char *ptemp = str.m_pData;
temp.m_pData = m_pData;
m_pData = ptemp;
}
return *this;
}//方法二
int main()
{
char a = 'a', b = 'b',c = 'c';
char *p = &a, *q = &b,*k = &c;
CMyclass m(p), n(q), l(k);
m.show();
n.show();
l.show();
m = n = l;
m.show();
n.show();
l.show();
return 0;
}
剑指offer1
最新推荐文章于 2020-08-07 21:23:37 发布