我确实研究了函子的整个概念,但是不幸的是,我无法理解函子相对于典型函数的真正优势。
根据一些学术脚本,函子可以保持与功能不同的状态。任何人都可以通过一些简单易懂的示例来详细说明吗?
我真的不明白为什么典型的常规功能不能做到这一点。对于这种新手问题,我真的感到很抱歉。
我得到奇怪的通知,我正在使用类的私有成员 - 这是完全有效的,但我虽然我被允许这样做,因为我确实说我正在使用的方法是友好的.
看看这个:
#include <iostream>
using namespace std;
class complex {
private:
double Re, Im;
public:
complex(): Re(0.0), Im(0.0){}
complex(double Re, double Im): Re(Re), Im(Im){}
double getRe() const { return Re; }
double getIm() const { return Im; }
friend complex operator+(const complex&, const complex&);
friend ostream& operator<<(ostream&, const complex&);
friend istream& operator>>(istream &, const complex &); // FRIENDLY FUNCTION
};
complex operator+(const complex& a, const complex& b) {
double r, i;
r = a.getRe()+ b.getRe();
i = a.getIm() …Run Code Online (Sandbox Code Playgroud)