C++中怎么重载赋值运算符

这篇文章给大家介绍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<

除了为Date类加入了一个重载运算符函数,这个程序和上面的一个程序是相同的。赋值运算符函数首先取得所需的数据,然后用delete把原来的month指针所占用的内存返还给堆。接着,如果源对象的month指针已经初始化过,就用new运算符为对象重新分配内存,并把源对象的month字符串拷贝给接受方。

重载的Date类赋值运算符函数的***个语句比较了源对象的地址和this指针。这个操作取保对象不会自己给自己赋值。

关于C++中怎么重载赋值运算符就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:C++中怎么重载赋值运算符
新闻来源:http://cdiso.cn/article/iijpps.html

其他资讯