最近正在初学 C++11, 函数指针作为参数比较容易实现和理解,那么函数作为返回值各位大大一般是如何实现的?
int add(int a, int b) {
return a + b;
}
int (*fun(int a))(int, int) {
cout << a << endl;
return add;
}
int main(int arg, char* args[]) {
int (*addFunc)(int, int);
addFunc = fun(10)
cout << addFunc(1, 10) << endl;
}
这样做有什么应用场景?
为了达到延迟计算的目的还可以像下面这样:
auto addLater(int a, int b) {
return [a, b]()->int{ return a + b; };
}
int main(int arg, char* args[]) {
auto addResult = addLater(1, 2);
cout << addResult() << endl;
}
如果我想把函数返回值 auto 改成指定类型,该写什么类型?