全文预览

新C++程序设计语言(李雁妮) 第10章

上传者:你的雨天 |  格式:ppt  |  页数:121 |  大小:0KB

文档介绍
是类型及其类型操作集的定义。Р10.2 操 作 符 重 载? C++允许对大多数基本类型的操作符进行重载。在用户自定义类型中,C++允许重载定义的操作符是(共计42个):Р不允许在用户自定义类型中重载定义的操作符是(共计6个):Р:: . .*? ? :?sizeof typeid ? 此外,C++不允许在自定义类型中重载定义新的操作符,例如不允许在C++中重载定义一个新的操作符**(求幂运算)。? 在C++中可采用类内的非静态成员函数或普通函数进行操作符的重载。? C++规定:在对操作符@进行重载时(各种操作符暂以@简记),其重载的函数名必须为operator @。例如,plex,我们分别重载了“+”、“*”(利用非静态成员函数重载)和“==”(利用普通函数重载)操作符,则其相应的重载函数名分别为operator+、operator*和operator==。示例代码如下:Р当在一个类中定义了重载操作符后,在程序中调用重载定义操作符的方式,既可以是在表达式中直接引用操作符,也可以调用操作符重载函数。示例代码如下:Р除三元操作符外,C++允许对语言基本类型的操作符集中的大部分一元及二元操作符进行重载。下面我们分别讨论这两种类别操作符的重载。Р10.2.1 二元操作符的重载? 当重载二元操作符时,一般而言,既可以用类的非静态成员函数进行重载(此时参数表中仅需给出第二操作数,第一操作数必须是类类型,且其值*this由系统自动传递),亦可用普通函数进行重载(参数表中需给出参加操作的两个操作数)。少数操作符除外,它们仅能由类的非静态成员函数重载。? 总之,对一个C++ 允许重载的二元运算符@而言,可用类的非静态成员函数或者用普通函数对其进行重载。同时,亦可以像基本类型一样,允许参加@运算的两个操作数的类型不同,因此,在类中可能有一组重载的操作符operator@函数,若程序中出现了:

收藏

分享

举报
下载此文档