c++中函数的定义和调用都可以嵌套吗

2024-11-23 22:38:23
推荐回答(2个)
回答1:

C++可以用lambda在某种意义上实现函数的嵌套,不过是和直接在函数里定义函数是不一样的。
1
2
3
4
5
6
7
int foo(int x, int y)

    auto goo = [=](){
        return x + y; 
    };
    return goo();  
}
lambda实际上是定义了一个重载()运算符的类,然后实例化的时候把外层函数的局部变量当成员复制过去。
 
当然很多支持嵌套函数的语言(学名叫Closure)实际上还是这么干的。

回答2:

不可以嵌套定义,可以嵌套调用。