,同时通过对功能封装在Boost库的教程之一(http://www.boost.org/doc/libs/1_55_0/doc/html/function/tutorial.html)去我碰到下面的代码来:定义运算符()函数
1 boost::function<float (int x, int y)> f;
2
3 struct int_div {
4 float operator() (int x, int y) const { return ((float)x)/y; }
5 };
6
7
8 int main()
9 {
10 f = int_div();
11 cout << f(5, 3) << endl;
12 return 0;
13 }
我想绕到我的头关于在结构中定义函数(operator()),然后将结构(使用())分配给函数包装器f。有人可以帮助我了解发生了什么,至于概念,在第3-5行和第10行。
谢谢, 艾哈迈德。
这是一个仿函数。 'boost :: function'包含一个可调用的对象,并给它一个可以“调用”的类的实例。 – chris
首先要认识到的是,在C++中,结构和类之间的唯一区别是成员的默认可见性:对于结构而言它是公共的,对于类是私有的。所以你真的在这里定义一个非常公开的课程。 –