LeetCode如何实现赋值运算符重载

这篇文章将为大家详细讲解有关LeetCode如何实现赋值运算符重载,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联专注于企业全网整合营销推广、网站重做改版、古县网站定制设计、自适应品牌网站建设、HTML5电子商务商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为古县等各大城市提供网站开发制作服务。

1 #include                                                                                                                         
  2 #include
  3 
  4 class MyString
  5 {
  6 public:
  7     MyString()
  8     {
  9         _data = new char[1];
 10         _data = '\0';
 11     }
 12 
 13     MyString(char* str)
 14     {
 15         assert(str);
 16         _data = new char[strlen(str) + 1];
 17         strcpy(_data, str);
 18     }
 19 
 20     MyString(const MyString& string)
 21     {
 22         assert(string._data);
 23         _data = new char[strlen(string._data) + 1];
 24         strcpy(_data, string._data);
 25     }
 26 
 27     ~MyString()
 28     {
 29         delete[] _data;
 30     }
 31 
 32     MyString& operator= (const MyString& string)
 33     {
 34         assert(string._data);
 35         if(*this == string)
 36         {
 37             return *this;
 38         }
 39 
 40         delete[] _data;
 41         _data = NULL;
 42         _data = new char[strlen(string._data) + 1];
 43         strcpy(_data, string._data);
 44         return *this;
 45     }
 46 
 47 protected:
 48     char* _str;
 49 }
1 #include
  2 #include
  3 
  4 class MyString
  5 {
  6 public:
  7     MyString()
  8     {
  9         _data = new char[1];
 10         _data = '\0';
 11     }
 12 
 13     MyString(char* str)
 14     {
 15         assert(str);
 16         _data = new char[strlen(str) + 1];
 17         strcpy(_data, str);
 18     }
 19 
 20     MyString(const MyString& string)
 21     {
 22         assert(string._data);
 23         _data = new char[strlen(string._data) + 1];
 24         strcpy(_data, string._data);
 25     }
 26                                                                                                                                           
 27     ~MyString()
 28     {
 29         delete[] _data;
 30     }
 31 
 32     MyString& operator= (const MyString& string)
 33     {
 34         assert(string._data);
 35         if(*this != string)
 36         {
 37             MyString tem(string);
 38 
 39             char* del = tem._data
 40             tem._data = _data;
 41             _data = del;
 42         }
 43         return *this;
 44     }
 45 
 46 protected:
 47     char* _str;
 48 }

关于“LeetCode如何实现赋值运算符重载”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前文章:LeetCode如何实现赋值运算符重载
本文URL:http://azwzsj.com/article/gsiode.html