函数的函数无法识别输入参数
Function of a function does not recognize an input parameter
我正试图使用指向函数的指针来创建一个函数的函数,类似于www.cplusplus.com上此链接底部(最后一节(给出的内容,只是稍微高级一点。我正在尝试以下操作:
在myFile.h 中
// namespace for: Functions
namespace Functions {
// namespace for: 1D functions
namespace OneDimensional {
// Function for: f(x) = x * x, Note: read t as times
double xtx(double x);
}
// namespace for: 2D functions
namespace TwoDimensional {
// Function for: f(x, g(y)) = x + g(y), Note: read _ as "of"
double f_xANDg_y(double x, double(*g)(double y));
}
}
在myFile.cpp 中
double Functions::OneDimensional::xtx(double x) {
return (x * x);
}
double Functions::TwoDimensional::f_xANDg_y(double x, double(*g)(double y)) {
return (x + (*g)(y)); // <== This is where I get the Error (E0020)
}
我检查了错误E0020,这让我找到了Stack;溢出,该用户缺少大括号。我检查了一下,没有丢失支架(但即使检查了几次,我也可能错了(。
是我错误地实现了f(x,g(y((的想法,还是我真的缺少了一个大括号?
这里出现错误是因为编译器不知道什么是"y",因为它没有在函数调用的可见范围内的任何位置声明。'f_xANDg_y(双x,双(*g((双y(;'上述功能参数仅取两个参数,
- "x"-其"类型为double">
- "g"作为指向"double(*((double("类型函数的指针。即"double(*g((double y(",这里"y"是函数指针的一部分,您的代码在使用y的情况下会完美地编写函数
- 在这里,您试图用"y"作为输入参数来调用函数,而编译器在其作用域中找不到"double y",因此,它抛出了一个错误
-
由于函数TwoDimenerional中的整个"double(*g((double y("参数可以归结为"一个以double作为输入并返回double的函数指针">
double Functions::TwoDimensional::f_xANDg_y(double x, double(*g)(double y)) { return (x + (*g)(y)); // <== This is where I get the Error (E0020) }
-
您的代码运行良好,您需要再添加一个"double"作为函数的参数,如
TwoDimensional::f_xANDg_y(double x, double(*g)(double), double y)
所示。正如编译器所期望的那样。 - 更正后的代码:
'
namespace Functions {
// namespace for: 1D functions
namespace OneDimensional {
// Function for: f(x) = x * x, Note: read t as times
double xtx(double x);
}
// namespace for: 2D functions
namespace TwoDimensional {
// Function for: f(x, g(y)) = x + g(y),a Note: read _ as "of"
double f_xANDg_y(double x, double(*g)(double), double yParam);
}
}
double Functions::OneDimensional::xtx(double x) {
return (x * x);
}
double Functions::TwoDimensional::f_xANDg_y(double x, double(*g)(double), double y) {
return (x + g(y));
}
'
相关文章:
- 如果我更改函数输入,我的递归不起作用?
- 初始化与函数输入相关的全局数组
- 如何生成比用户使用 rand() 函数输入的数字大 5-10% 的数字?
- 将函数更改为具有设置函数输入变量的方法的类
- 如何避免将 const 和非 const 成员函数输入到模板中的代码重复
- 是否有一种方法可以避免标头文件中使用的constexpr函数输入全局范围,而无需额外的名称空间
- 迭代器作为C 中的函数输入
- 如何为作为雇员类的指针传入的构造函数输入数据
- 最小的函数输入和输出错误
- C++ 函数输入错误
- QComboBox 作为 QT 中的函数输入参数
- 函数输入之前的分割故障
- 如何在视觉工作室 2012年设置函数输入参数的颜色
- 函数输入变化
- 使用函数输入 1 个 int 和 1 个字符串数组并循环
- 将数组用于函数输入参数
- 如何在c++中将函数输入强制转换为智能指针
- 自定义检查器的覆盖率引用函数输入
- 为什么我不能使用两个scanf函数输入字母
- 犰狳cov函数输入