最近正在初学 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 改成指定类型,该写什么类型?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.