C++程序设计之调用一个重载的运算符函数的两种方法

通常情况下,我们将运算符作用于类型正确的实参,从而以这种间接方式“调用”重载的运算符函数。然而,我们也能像调用普通函数一样直接调用运算符函数,先指定函数的名字,然后传入数量正确、类型适当的实参:

// 一个非成员运算符函数的等价调用
data1 + data2;
operator+(data1 + data2);

这两次调用是等价的,它们都调用了非成员函数operator+,传入data1作为第一个实参、传入data2作为第二个实参。

我们像调用其他成员函数一样显示地调用成员运算符函数。具体做法是,首先指定运行函数的对象(或指针)的名字,然后使用点运算符(或箭头运算符)访问希望调用的函数:

// 一个成员运算符函数的等价调用
data1 += data2;
data1.operator+=(data2);

这两条语句都调用了成员函数operator+=,将this绑定到data1的地址、将data2作为实参传入了函数。

Leave a Reply

Your email address will not be published. Required fields are marked *