나는 정수 계산기를 쓰고있다. function.h.cpp 파일에있는 함수 클래스에서 함수를 읽도록 main.cpp 파일을 가져 오려고합니다. 나는 쉬운 경우C++ 메인의 헤더 파일에서 함수 호출하기
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();
}
당신이 볼 수 있듯이, 실제로 적분의 계산을 수행 적분 계산기라는 다른 클래스는이 때를 작동하기 때문에 아무것도 그 문제 없어야하지만,이 함수 정의가 main에 포함되어 있고 함수가 매개 변수로 전달됩니다. 같은
#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
파일이 정의된다 : :이 functions.h
파일은 다음과 같이 정의된다
#include <iostream>
#include <cmath>
#include "functions.h"
double functions::square(double aX)
{
return aX*aX;
}
은 내가 비록 지금의 나는이의 <cmath>
라이브러리를 필요로하지 않는다는 것을 알고있다 그것들을 추가 할 때 더 복잡한 함수를 필요로 할 것입니다.
주 기능 클래스를 상속 한 시도하고 함수 클래스 및 함수를 정의하는 네임 스페이스를 만들려고했지만 이들 중 아무 것도 작동하지 않았습니다. 내가 컴파일 갈 때, 나는 다음과 같은 오류가 발생합니다 : 누군가가 나이 문제를 알아내는 데 도움이 바랍니다 수
Main.cpp: In function ‘int main()’:
Main.cpp:9: error: ‘square’ was not declared in this scope
합니다. 필자가 작성하려고하는이 코드는 클래스가 끝난 것보다 훨씬 앞선다. 그래서이 방법으로 프로그램을 작성하고 싶지만 어떻게 수정해야할지 모르겠다.
고맙습니다.
편집 : 궁금한 점이 있으시면 functions.h
및 functions.cpp
파일을 Makefile에 포함시키고 자합니다. IntegralCalculator
클래스에 square(double aX)
정의를 넣으려고 할 때도 같은 오류가 발생했습니다. 같은 오류.
'functions.h'에'double square (double aX)'를 선언 했습니까? – Kyurem
'functions.h' 파일이있는 섹션을 보면 알 수 있습니다. – Cmertin
귀하의 문제는 함수 클래스에서 square 함수를 선언하여 멤버 함수로 만드는 것으로 보입니다. double function :: square (double ax) {...}로 선언해야합니다. –