中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么重載賦值運算符

發布時間:2021-07-06 17:30:09 來源:億速云 閱讀:128 作者:Leah 欄目:編程語言

這篇文章給大家介紹C++中怎么重載賦值運算符,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

重載賦值運算符

在類中重載賦值運算符的格式如下:

void operator = (const Date&)

后面我們回加以改進。目前,重載的運算符函數的返回類型為void。它是類總的成員函數,在本程序紅,是Date類的成員函數。它的函數名始終是operator =,參數也始終是同一個類的對象的引用。參數表示的是源對象,即賦值數據的提供者。重載函數的運算符作為目標對象的成員函數來使用。

#include \"iostream.h\"  #include \"string.h\"  class Date  {  int mo,da,yr;  char *month;  public:  Date(int m=0, int d=0, int y=0);  ~Date();  void operator=(const Date&);  void display() const;  };   Date::Date(int m, int d, int y)  {  static char *mos[] =  {  \"January\",\"February\",\"March\",\"April\",\"May\",\"June\",  \"July\",\"August\",\"September\",\"October\",\"November\",\"December\" };  mo = m; da = d; yr = y;  if (m != 0)  {  month = new char[strlen(mos[m-1])+1];  strcpy(month, mos[m-1]);  }  else month = 0;  }   Date::~Date()  {  delete [] month;  }  void Date::display() const {  if (month!=0) cout<<month<<\' \'<<da<<\",\"<<yr<<endl;  }  void Date::operator=(const Date& dt)  {  if (this != &dt)   {  mo = dt.mo;  da = dt.da;  yr = dt.yr;  delete [] month;  if (dt.month != 0)  {  month = new char [std::strlen(dt.month)+1];  std::strcpy(month, dt.month);  }  else month = 0;  }  }  int main()  {  Date birthday(8,11,1979);  birthday.display();  Date newday(12,29,2003);  newday.display();  newday = birthday;  newday.display();  return 0;  }

除了為Date類加入了一個重載運算符函數,這個程序和上面的一個程序是相同的。賦值運算符函數首先取得所需的數據,然后用delete把原來的month指針所占用的內存返還給堆。接著,如果源對象的month指針已經初始化過,就用new運算符為對象重新分配內存,并把源對象的month字符串拷貝給接受方。

重載的Date類賦值運算符函數的***個語句比較了源對象的地址和this指針。這個操作取保對象不會自己給自己賦值。

關于C++中怎么重載賦值運算符就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

兴隆县| 孝感市| 临夏县| 旺苍县| 三都| 太保市| 疏勒县| 视频| 乌兰浩特市| 屏东县| 金坛市| 郎溪县| 沂南县| 高唐县| 南丹县| 新蔡县| 湘乡市| 慈溪市| 忻城县| 高唐县| 平舆县| 齐齐哈尔市| 邻水| 栖霞市| 大田县| 迁西县| 琼中| 商洛市| 永兴县| 宜城市| 交口县| 承德县| 贵溪市| 科技| 亳州市| 铜梁县| 三台县| 肥东县| 靖州| 巩义市| 太仆寺旗|