设为首页 加入收藏

TOP

8.9.4 实现引用类型的赋值运算符
2013-10-07 12:36:08 来源: 作者: 【 】 浏览:60
Tags:8.9.4 实现 引用 类型 运算

8.9.4  实现引用类型的赋值运算符

在少数情况下,需要实现引用类型的赋值运算符,因为我们通常会用句柄引用对象,而不需要复制构造函数。然而,如果我们使用CLR的标准模板库(Standard Template Library,简写STL,第10章将会介绍),在有些情况下会需要实现赋值运算符,编译器永远不会提供默认的赋值运算符。在引用类中重载赋值运算符的函数形式非常简单,参见下面的示例很容易理解。下面举例说明Length类的赋值运算符:

  1. Length% operator=(const Length% len)  
  2. {  
  3. if(this != %len)  
  4. {  
  5. feet = len.feet;  
  6. inches = len.inches;  
  7. }  
  8. return *this;  
该函数形参是const,因为它不会改变,如果不将它声明为const,则会按值传递实参,并且会导致调用复制构造函数。返回类型也是一个引用,因为它总是返回this所指向的对象。if语句检查实参与当前对象是否相同,如果相同,函数仅返回*this,它将是当前对象。如果不同,就在返回当前对象之前将len的每个数据成员复制到当前对象中。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.9.3 在引用类中重载运算符 下一篇8.9.2 重载递增和递减运算符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: