另一个函数的参考函数

时间:2010-03-19 15:38:22

标签: c++ function

我忘了如何在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返回答案。

2 个答案:

答案 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.
}