剑指offer 面试题1

上微信头条,C币就是你的CSDN社区之星徐宜生:爱分享、爱极客! 最流行的语言想学就学写博文,传代码,赚C币

剑指offer 面试题1

分类:剑指offer

题目:赋值运算符函数

写出一个类的赋值运算符。 注意事项: 1.是否返回该类的引用类型

2.是否传入的参数类型是常量引用。

3.是否释放自身已有内存

4.是否是同一实例

代码如下:

;class CMyString{public:CMyString(char *pData=NULL);CMyString(CMyString &str);CMyString& operator=(CMyString &str);~CMyString(void);void Print(){ cout << m_pData; }private:char* m_pData;};CMyString::CMyString(char *pData){if (NULL == pData){m_pData = NULL;return;}else{unsigned int len = strlen(pData)+1;m_pData = new char[len];for (int i = 0; i < len-1; i++)m_pData[i] = pData[i];m_pData[len-1] = ‘\0’;}}CMyString::CMyString(CMyString &str){unsigned int len = strlen(str.m_pData) + 1;m_pData = new char[len];for (int i = 0; i < len-1; i++)m_pData[i] = str.m_pData[i];m_pData[len-1] = ‘\0’;}CMyString & CMyString::operator=(CMyString &str){if (this == &str)return *this;else{unsigned int len = strlen(str.m_pData) + 1;char *pTemp = new char[len];for (int i = 0; i < len-1; i++)pTemp[i] = str.m_pData[i];pTemp[len-1] = ‘\0’;delete[]m_pData;m_pData = pTemp;}return *this;}CMyString::~CMyString(){delete [] m_pData;}int main(){char c1[10] = “majunfu”;CMyString s1(c1);CMyString s2 = s1;s1 = s2;s1.Print();s2.Print();return 0;}

上一篇Effective C++ 条款2下一篇MFC 菜单操作

顶1踩0

主题推荐猜你在找

查看评论

* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

核心技术类目

,何不去远方!昆明呀——赶一个花海;

剑指offer 面试题1

相关文章:

你感兴趣的文章:

标签云: