以下是我遇到的情况。我需要调用类(manipfunction)中包含的方法(即manip_a()),在主函数中提供了一些参数。这些参数是变量(一些双重)和一个函数(即函数)。有人可以帮忙吗?谢谢。
// manip.hpp
class ManipFunction
{
// for example ..
private:
// Initialization function ...
// Copy constructors ...
// Core functions ...
double manip_A();
double manip_B();
public:
// Public member data ...
...
// Constructors ...
...
// Destructors ...
...
// Assignment operator ...
};
。
// manip.cpp
#include"manip.hpp"
// Core functions
double ManipFunction::manip_A() const
{
// Apply manip_A() to the function and parameters provided in manip_test.cpp
}
double ManipFunction::manip_B() const
{
// Apply manip_B() to the function and parameters provided in manip_test.cpp
}
// Initialisation
...
// Copy constuctor
...
// Destructor
...
// Deep copy
...
}
。
// manip_test.cpp
#include<iostream>
// Other required system includes
int main()
{
double varA = 1.0;
double VarB = 2.5;
double func (double x) {return x * x};
double manip_A_Test = ManipFunction::manip_A(func, varA, VarB);
std::cout << "Result of Manip_A over function func: " << manip_A_Test << endl;
return 0;
}
好的,这里有几个误解。
1)功能内部的功能不是合法的C 。
int main()
{
...
double func (double x) {return x * x};
...
}
这是不允许的。将func
移到Main之外。尾随的;
也不合法。
2)要调用manipfunction方法,您需要一个manipfunction 对象。您的代码无法提供。
int main()
{
...
ManipFunction mf; // a ManipFunction object
mf.manip_A(func, varA, VarB); // call the manip_A method on the ManipFunction object
...
}
3)尽管您说您希望manip_A
具有参数,但您尚未声明任何参数。在这里,我给出了manip_A
两个参数,这两个参数均为double
。
class ManipFunction
{
double manip_A(double x, double y);
...
};
4)尽管您说您想从内部主拨打manip_A
,但在代码中,您已将manip_A
称为private
。如果要直接从Main调用它,则必须是public
。
最后,我只是说发布您的真实代码可能更好,而不是我认为您发布的编写代码。
希望这有帮助