我想创建一个函数f(),它使用三个值来计算其结果:a,b和e。 e取决于a和b,因此技术上f()只是a和b的函数。但是为了便于阅读,更容易看到包含抽象e的函数,而不是查看包含许多a和b的混乱公式。
有没有办法在不使用C ++不允许的嵌套函数的情况下使用e等因变量?
答案 0 :(得分:4)
C ++确实有局部变量,这很容易:
double f(double const a, double const b)
{
double const e = a * b + b * b * b;
return a + b + e;
}
答案 1 :(得分:2)
你可以编写一个可以定义静态函数的本地结构,它可以像嵌套函数一样使用:
int f(int a, int b)
{
struct local
{
static int f(int a, int b, int e)
{
return e * (a + b);
}
};
return local::f(a,b, a*b);
}
答案 2 :(得分:2)
不确定我理解你的问题,但如果你只是想通过引入因变量来使你的函数更具可读性,为什么不在主函数调用的单独函数中计算该变量:
float CalculateE(float a, float b)
{
return (a + b);
}
float f(float a, float b)
{
float e = CalculateE(a, b);
return a + b + e;
}
答案 3 :(得分:1)
出了什么问题:
int compute_e(int a, int b)
{
return whatever;
}
int func(int a, int b)
{
int e = compute_e(a, b);
}
答案 4 :(得分:1)
你可以这样做:
int f(int a, int b)
{
struct LocalFunc
{
int operator()(int a, int b)
{
return a*b + b*b*b;
}
};
LocalFunc e;
return e(a,b)*a+b;
}
答案 5 :(得分:-1)
我认为你可以写一些笔记。
int FuncSum(int a, int b)
{
//return the sum of a + b
return a + b ;
}