#include "iostream"
#include "windows.h"
class Function
{
int y;
public:
Function(int x): y(x){};
public:
double operator()(double x)
{
return x+2*y;
}
};
int main()
{
using namespace std;
Function myFunc(1);
cout<<myFunc(2.0)<<endl;
system("pause");
}
刚刚开始的时候,我就只有一个困惑,如果,我大一下学期写的C++基础——类的知识还在的话,那么,当我们定义完一个类的对象实例后,首先在类的定义中执行的是构造函数,而后,我们利用这个对象实例调用类中的函数....而后,在上面的代码中,我们就定义了一个类的对象实例,并传入一个参数,而后再重新传入一个参数就能在类的实现定义中调用operator()函数了,你可以断点调试走一遍代码的执行路径。其实上面的疑惑可以用这么一句话来解释——重载的函数操作符,对对象使用起来就像对象是一个函数一样。最后看看上面的实现: