C++运算符重载:成员函数 vs 友元函数

C++运算符重载:成员函数 vs 友元函数

在C++中,我们可以通过两种方式重载运算符:

  • 成员函数: 将运算符重载函数定义为类的成员函数。此时,函数只有一个参数,代表运算的右操作数,而左操作数则是调用该函数的对象本身。例如,复数类中成员函数 operator+ 用于将两个复数相加。
  • 友元函数: 将运算符重载函数声明为类的友元函数。友元函数可以访问类的私有成员,并可以定义两个参数,分别代表运算的左右操作数。例如,友元函数 operator+ 可以用于将一个复数与一个整数相加。

两种方式的选择取决于具体的应用场景:

  • 当运算符的操作数必须是该类的对象时,通常使用成员函数进行重载。
  • 当运算符的操作数可以是不同类型,或者需要访问类的私有成员时,可以使用友元函数进行重载。
ppt 文件大小:5.89MB