我忘了如何在C ++中将另一个函数引用到函数中? 在python中,它被声明为一个类,以便我可以使用它。
double footInches(double foot)
{
double inches = (1.0/12.00) * foot;
return inches;
}
double inchMeter(double inch)
{
double meter = 39.37 * (footInches(inch));
return meter;
}
我想在inchMeter中引用footInches。
编辑
这是主程序
int main()
{
double feet, inch, meter, x = 0;
cout << "Enter distance in feet to convert it to meter: " << endl;
cin >> x;
cout << inchMeter(x);
return 0;
我认为最后一行不正确。我想首先在footInches中获取x,然后转到inchMeter,然后从inchMeter返回答案。
答案 0 :(得分:1)
参考是指你打电话吗? 您在示例中正确调用函数,但不需要使用周围的括号。
就像这样:
double inchMeter(double inch)
{
double meter = 39.3700787 * footInches(inch);
return meter;
}
如果您的函数存在于不同的.cpp文件中,或者您需要引用稍后定义的函数,则可以使用前向声明。
示例:
<强> a.cpp:强>
double footInches(double foot)
{
double inches = foot * 12.0;
return inches;
}
<强> b.cpp:强>
double footInches(double foot); //This is a forward declaration
double inchMeter(double inch)
{
double meter = 39.3700787 * footInches(inch);
return meter;
}
答案 1 :(得分:0)
在C中“引用”任意函数的传统方法是使用函数指针。你真的不需要它,因为你不打算在运行时更改toinches函数的实现,但是如果你需要一个“函数引用”,你可以这样做:
//Declare a function type that does what you want.
typedef double (*inch_converter_t)(double foot)
double footInches(double foot)
{
double inches = (1.0/12.00) * foot;
return inches;
};
//Pass a function pointer to another function for use.
double inchMeter(double inch, inch_converter_t converter)
{
double meter = 39.37 * (converter(inch)); //Making a function call with the pointer.
return meter;
}
int main()
{
inch_converter_t myConverter = footInches;
doube result = inchMeter(42, myConverter); //Call with function pointer.
}