我們可以在C ++中的函數內部使用函數嗎?我的意思是:int main() { void a() { // code } a(); return 0;}
3 回答

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
已經提到了本地類,但是這里有一種方法可以讓它們更像本地函數,使用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 關注
- 606 瀏覽
添加回答
舉報
0/150
提交
取消