【发布时间】:2013-02-07 03:28:08
【问题描述】:
假设我有一个多项式函数 f(x),我想将这个表达式用于表达式 g(x) 或 h(x),具体取决于用户选择。这可能吗?
例如
int main() {
float fexpression = /* polynomial function f(x) here */;
/* some code where user picks g(x) or h(x) */
if (/* gexpression == true */)
cout << gfunction(fexpression);
else /* h expression == true */
cout << hfunction(fexpression);
return 0;
}
float gfunction(float j){
float var = /* some function representing g(f(x)) == g(j) */;
return var;
}
float hfunction(float j){
float var = /* some function representing h(f(x)) == h(j) */;
return var;
}
在我看来,我可以传递一个表达式变量,例如
float fexpression = ....
【问题讨论】:
-
不清楚你在哪里设置/使用
x。fexpression是字符串吗?你如何评估 f(x)? -
我希望它是一个带有变量的多项式表达式。例如,(5*(pow(x,4))) + (3*(pow(x, 3))) + (10 * x) - 5
-
大概是在赋值过程中求值,所以你实际上传递的是值而不是表达式。这确实需要您在某处定义
x... -
提示:
fexpression是float的事实告诉您,当您调用函数时,它不再是表达式... -
嗯...是的,我只是将它设置为浮点数只是因为。但是我不能先计算表达式,因为后面有动态变量插入到表达式中。
标签: c++ function parameters arguments expression