gpt4 book ai didi

c++ - 在 C++ 中模拟嵌套函数

转载 作者:IT老高 更新时间:2023-10-28 12:49:40 28 4
gpt4 key购买 nike

在 C 中,以下代码在 gcc 中有效。

int foo( int foo_var )
{
/*code*/
int bar( int bar_var )
{
/*code*/
return bar_var;
}
return bar(foo_var);
}

如何使用 gcc 编译器在 C++ 中实现与嵌套函数相同的功能?如果这似乎是一个初学者问题,请不要介意。我是这个网站的新手。

最佳答案

C++ 中不允许使用局部函数,但在局部类中允许使用局部类和函数。所以:

int foo( int foo_var )
{
/*code*/
struct local
{
static int bar( int bar_var )
{
/*code*/
return bar_var;
}
};
return local::bar(foo_var);
}

在 C++0x 中,您还可以选择使用 lambda 语法创建仿函数。这在 C++03 中稍微复杂一些,但如果您不需要捕获变量,仍然不错:

int foo( int foo_var )
{
/*code*/
struct bar_functor
{
int operator()( int bar_var )
{
/*code*/
return bar_var;
}
} bar;
return bar(foo_var);
}

关于c++ - 在 C++ 中模拟嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356050/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com