7
章 类与对象
7.1 类和对象(定义及使用)初步
7.2 成员函数的重载
7.3 对象的初始化、构造函数与析构函数
7. 4 类的定义及其使用
7. 5 类的静态成员及常量成员
7. 6 友元
7. 7
类之间的对象关系 对象成员和嵌套
7. 8 自定义类中的运算符重载
7. 8.1
运算符重载的基本概念 及运算符重载的两种方式
重载运算符是 C++的一个重要特性。运算符重载从另一方面体现了 OOP 技术的多态
性,即同一运算符可根据不同的运算对象完成不同的操作。
运算符重载也是函数名重载的一种特殊情况,即将运算符看成是一种特殊的函数,但
其实现和使用与函数重载的实现和使用有一定的差别。
下面详细介绍运算符重载的基本方法。
7. 8.1.1 基本概念和方法
1
.运算符重载概念
重载运算符时,可以将该运算符看成是函数名(不是真正的函数名,因为它不符合
标识符的要求),然后在相应的类中定义一个与该运算符同名的函数,并告诉编译器,
当遇到该重载运算符的调用时,由这个函数来完成该运算符应该完成的操作。这种函数称
为
运算符重载函数。它通常是类的成员函数或者友元函数
。。
此外,注意(对重载运算符的限制):
1)但有些运算符只能用成员函数重载,比如:
“
赋值运算符、数组下标运算符 [ ] ”
“ ”
、函数调用运算符 ( ) 、new、delete 等
2)在 C++中,大多数系统预定义的运算符都能被重载,只有少数几个运算符是不能
被重载的,它们是:
. :: ?: *
(指针运算符) sizeof ( )
3)重载运算符时,不能改变它们的优先级和结合性,也不能改变这些运算符所需要
操作数的个数。
4
)不可自创 新的运算符。
2.定义运算符重载函数的一般格式为:
<类型>
operator @
(<参数表>) //利用成员函数重载
{……} //函数体
或
1