C++重载的奥义之运算符重载

打印 上一主题 下一主题

主题 927|帖子 927|积分 2781

0、引言

        重载,顾名思义从字面上理解就是重复装载,打一个不恰当的比方,你可以用一个篮子装蔬菜,也可以装水果或者其它,使用的是同一个篮子,但是可以用篮子重复装载的东西不一样。
        正如在之前的文章《重载的奥义之函数重载》中介绍的类似,函数的重载是指利用相同的函数名设计一系列功能相近,但是功能细节不一样的函数接口;因此运算符重载也是指对于同一个运算符来说,它可以用于实现不同的功能。下面就一起来理解下运算符重载的应用。
1、运算符重载定义

        正常来说,我们一般使用的运算符是对基本的数据类型进行操作,但是在C++中有了对象,导致对象无法通过运算符进行运算,故引入了运算符重载即需要重新的定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性。
        运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,唯一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下:
  1. 1 <返回类型说明符> operator <运算符符号>(<参数表>)
  2. 2 {
  3. 3      <函数体>
  4. 4 }
复制代码
        其中,“返回类型说明符”指出重载运算符的返回值类型,operator是定义运算符重载函数的关键字,“运算符符号”指出要重载的运算符名字,是C++中可重载的运算符,比如要重载加法运算符,这里直接写“+”即可,“参数表”指出重载运算符所需要的参数及其类型。可以看出,运算符重载是一种形式C++多态的体现。
        例如,使用“+”将两个对象相加,编译器将根据操作数的数目和类型决定使用哪种加法定义,这样可以让代码看起来更加自然。
[code] 1 //正常情况下两个数组的数相加 2 for(int i= 0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表