重载 '()' 运算符案例
#include <iostream>
using namespace std;
class F{
public:
double operator()(double x, double y);
};
double F::operator()(double x, double y)
{
return x * x + y * y;
}
int main()
{
F f;
cout << f(3, 4) << endl;
//如何重载()运算符 还是一样的三部曲
//1.承认是函数 写出调用原型 f.operator()(3, 4);
//2.根据原型 在类 F 中写出(函数名为operator()的)成员函数
//3.使用重载后的运算符
return 0;
}
为什么不要重载 逻辑与 和 逻辑或 运算符?
理论知识:
1. && 和 || 是c++中非常特殊的操作符
2. && 和 || 内置实现了短路规则
3. 操作符重载是靠函数重载来完成的
4. 操作数作为函数参数传递
5. c++的函数参数都会被求值,无法实现短路规则