日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(剑指Offer)面试题1:赋值运算符函数

發布時間:2025/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (剑指Offer)面试题1:赋值运算符函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

如下為類型CMyString的聲明,請為該類型添加賦值運算符函數。

class CMyString{
public:
??? CMyString(char* pData=NULL);
??? CMyString(const CMyString& str);
??? CMyString& operator=(const CMyString& str);
??? ~CMyString(void);

private:
??? char *m_pdata;
};

?

思路:

賦值運算符函數,注意四點:

1、是否將返回值的類型聲明為該類型的引用,并在函數結束前返回實例自身的引用,即*this。只有返回一個引用,才可以允許連續賦值。

2、是否把傳入參數的類型聲明為常量引用。如果傳入的參數不是引用而是實例,那么從形參到實參會調用一次復制構造函數,把參數聲明為引用可以避免這樣的無謂消耗,能提高代碼的效率。同時,在賦值運算符函數中不會改變傳入的實例的狀態,因此應該為傳入的引用參數加上const關鍵字。

3、是否釋放實例自身已有的內存,如果忘記在分配新內存之前釋放自身已有的空間,程序將出現內存泄露。

4、是否判斷傳入的參數和當前實例*this是不是同一個實例。如果是同一個,則不進行賦值操作,直接返回。

5、注意淺拷貝和深拷貝

更多考慮:異常安全性等。

代碼:

?

#include <iostream> #include <string.h>using namespace std;class CMyString{ public:CMyString(const char* pData=NULL);CMyString(const CMyString& str);CMyString& operator=(const CMyString& str);char* getData(){return this->m_pdata;};~CMyString(void);private:char *m_pdata; };/* // shallow copy CMyString::CMyString(char* pData){m_pdata=pData; }CMyString::CMyString(const CMyString& str){*this=str; } */// deep copy CMyString::CMyString(const char* str){if(str==NULL){m_pdata=new char[1];m_pdata[0]='\0';}else{m_pdata=new char[strlen(str)+1];strcpy(m_pdata,str);} }CMyString::CMyString(const CMyString &str){m_pdata=new char[strlen(str.m_pdata)+1];strcpy(m_pdata,str.m_pdata); }CMyString::~CMyString(){delete[] m_pdata; }CMyString& CMyString::operator=(const CMyString &str){if(this==&str)return *this;delete []m_pdata;m_pdata=NULL;m_pdata=new char[strlen(str.m_pdata)+1];strcpy(m_pdata,str.m_pdata);return *this; }int main() {char a[]="hello";CMyString str(a);CMyString str1(str);CMyString str2;CMyString str3;str3=str2=str;cout << str.getData()<< endl;cout << str1.getData()<< endl;cout << str2.getData()<< endl;cout << str3.getData()<< endl;return 0; }

運行結果:

轉載于:https://www.cnblogs.com/AndyJee/p/4486043.html

總結

以上是生活随笔為你收集整理的(剑指Offer)面试题1:赋值运算符函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲青草 | 射网站| www日本在线观看 | 亚洲深夜福利视频 | 久久一级免费视频 | 性――交――性――乱睡觉 | 日本一道本在线 | 天堂中文在线免费观看 | 中文字幕日韩欧美在线 | www.xxxx国产 | 日本新japanese乱熟 | 欧美人妖69xxxxxhd3d | 亚洲AV成人无码网站天堂久久 | 成人中文网 | 宅男视频在线免费观看 | 大陆熟妇丰满多毛xxxⅹ | 香蕉爱爱视频 | 一级黄色免费观看 | 日韩精品一区二区亚洲av | 国产情侣av自拍 | 亚洲图片欧美在线 | 雪白的扔子视频大全在线观看 | 奇米视频在线观看 | 欧美日韩国产精品 | 欧洲一区二区在线观看 | 国产乡下妇女三片 | 中文字幕一区二区在线观看 | 中文字幕免费高清视频 | 国产3区 | 国产夜夜夜| 精品一区二区三区免费 | 色99在线| 另类专区欧美 | 图片区视频区小说区 | 午夜伊人网| 一级做a爰片毛片 | 性感美女在线 | 欧美精品hd | 国产乱女淫av麻豆国产 | 亚洲天堂一区在线观看 | 亚洲欧美精品在线观看 | 伊人啪啪 | 国产91成人| 人妻少妇精品无码专区久久 | 欧美黑人狂野猛交老妇 | 国产色播av在线 | 欧美区一区二区三 | 6699嫩草久久久精品影院 | 亚洲天堂欧美在线 | 日韩sese | 午夜在线看片 | 欧美乱妇日本无乱码特黄大片 | 久久精品aaaaaa毛片 | 国产男男一区二区三区 | 澳门一级黄色片 | 亚洲成人精品一区二区三区 | 伊人影院综合在线 | 亚洲精品国产精品乱码在线观看 | 嫩草影院懂你的影院 | 114国产精品久久免费观看 | 久久爱影视i | 国产人妖视频 | 九月婷婷综合 | 在线观看aaa | 乳揉みま痴汉4在线播放 | 亚洲免费视频播放 | 欧美国产日韩在线 | 欧美大片在线播放 | 秋霞午夜鲁丝一区二区老狼 | 国产人成免费视频 | 欧洲成人综合网 | 亚洲美女爱爱 | 中国老妇性视频 | 成人免费看高清电影在线观看 | 成人欧美一区二区三区黑人动态图 | 九九九在线观看 | 黄a视频 | 日本少妇吞精囗交视频 | 日韩精品成人在线 | 欧美午夜精品久久久久免费视 | 男人av影院| 大肉大捧一进一出视频 | 激情网站视频 | 亚洲精品www久久久久久广东 | 免费毛片播放 | 欧美视频一区二区三区在线观看 | 岛国av在线免费观看 | 国产色综合天天综合网 | 青青青在线免费观看 | 国产人妻一区二区三区四区五区六 | 美女扒开腿让男人操 | 伊人网成人网 | 国产精品12p | 国产精品夜夜爽张柏芝 | 在线色网| 亚洲av成人精品一区二区三区在线播放 | 青青青国产精品一区二区 | 69av导航| 美女扒开腿让人桶爽原神 |