我正在写一个积分计算器。我试图让 main.cpp 文件从 functions.h.cpp 文件中的函数类中读取函数。对于简单的情况,我有一个定义如下的函数:
double square(double aX)
{
return aX*aX;
}
当我将它包含在主文件中时,这个函数可以工作,尽管当我尝试从主文件中调用它时它不想工作,当它在函数文件中时。这是我拥有的代码:
Main.cpp
文件:
#include <iostream>
#include "IntegralCalculator.h"
#include "functions.h"
using namespace std;
int main()
{
IntegralCalculator Function(square);
Function.print();
}
正如您所看到的,还有一个名为的类IntegralCalculator
实际上进行了积分的计算,尽管当函数定义包含在主函数中并且函数作为参数传递时,它应该没有问题。该functions.h
文件定义如下:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include <iostream>
#include <cmath>
#include "IntegralCalculator.h"
class functions : public IntegralCalculator
{
public:
functions();
double square(double aX);
};
#endif
并且functions.cpp
文件定义如下:
#include <iostream>
#include <cmath>
#include "functions.h"
double functions::square(double aX)
{
return aX*aX;
}
我知道到目前为止我不需要该<cmath>
库,尽管当我添加它们时我将需要它来实现更复杂的功能。
我尝试在 main 中继承函数类,并尝试为函数类创建命名空间并定义函数,但是这些都不起作用。当我去编译时,我收到以下错误:
Main.cpp: In function ‘int main()’:
Main.cpp:9: error: ‘square’ was not declared in this scope
如果有人可以请帮我解决这个问题。我正在尝试编写的这段代码比我的课程更先进,所以我不确定如何修复它,尽管我想以这种方式编写程序。
编辑:如果你好奇,我在 Makefile 中包含了functions.h
和文件。functions.cpp
当我尝试将square(double aX)
定义也放入IntegralCalculator
类中时,我遇到了同样的错误。