ibeautiful
已经提到了本地类,但是这里有一种方法可以让它们更像本地函数,使用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;};