background image

7

 

章 类与对象

71  类和对象(定义及使用)初步

7成员函数的重载

7对象的初始化、构造函数与析构函数

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