调用C 类中包含的方法,其中具有变量和函数



以下是我遇到的情况。我需要调用类(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

最后,我只是说发布您的真实代码可能更好,而不是我认为您发布的编写代码。

希望这有帮助

相关内容

  • 没有找到相关文章

最新更新