我们可以在C ++中的函数内部使用函数吗?我的意思是:int main() { void a() { // code } a(); return 0;}
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
已经提到了本地类,但是这里有一种方法可以让它们更像本地函数,使用operator()重载和匿名类:
int main() { struct { unsigned int operator() (unsigned int val) const { return val<=1 ? 1 : val*(*this)(val-1); } } fac; std::cout << fac(5) << '\n';}
我不建议使用它,这只是一个有趣的技巧(可以做,但imho不应该)。
2014年更新:
随着C ++ 11的兴起,您现在可以拥有本地函数,其语法有点像JavaScript的回忆:
auto fac = [] (unsigned int val) { return val*42;};
- 3 回答
- 0 关注
- 572 浏览
添加回答
举报
0/150
提交
取消