C++初学者指南 第九篇(9)

必备技能9.9:运算符重载

在本章的剩余部分,我们将讨论C++中最令人激动也是最强大的特性之一:运算符重载。在C++中,和我们创建的类相关的运算符可以被重载。运算符重载带来的好处就是:我们可以无缝地把心的数据类型集成到我们的程序环境中。

当进行运算符重载的时候,我们就是在针对一个特此的类来定义该运算符的含义。例如,链表类就可以使用+运算符来为链表中增加元素。栈类可以使用+运算符来把一个对象压入栈顶。

还有别的类可能以完全不同的另外的方式来使用+运算符。当一个运算符被重载以后,它并没有失去原有的含义。而是我们针对相关的类定义了一个新的运算符。因此重载+运算符来处理链表并不意味着+运算符对于整型数的含义也发生了变化。

运算符的重载和函数的重载是密切相关的。重载运算符的时候,我们必须针对和他相关的类来定义该运算符的含义。我们是通过创建一个运算符函数来进行运算符重载的。通用的形式如下:

类型 类名::operator#(参数列表)

{   

    //操作实现

}

这里,我们要用需要被重载的运算符来替换其中的#;其中的类型就是指定运算返回的类型。尽管这里的返回值可以是任意我们选择的类型,但是一般情况下,返回值的类型就是和我们重载运算符相关的类的类型。这样方便在复合表达式中使用该运算符。其中的参数列表由几个因素来决定。这点我们会在下面进行讨论。

运算符函数可以是类的成员函数,也可以不是类的成员函数。非类成员函数的运算符函数通常都是类的友元函数。但是两种运算符函数重载的方式还是有区别的。下面将逐一进行描述。

注意:由于C++中定义了很多的运算符,所以运算符重载涉及的范围是很广泛的。在本书中,我们不可能全部都覆盖到。更多关于运算符重载的信息,可以参见另外的C++书籍:Osborne/McGraw-Hill.出版的《C++ 全书》(英文名为:C++:The complete reference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值