나는 나의 MAIN.CPP에이 기능이 있습니다리팩터링 : CLion에서 이동 (F6) - 왜 그렇게 작동합니까?
double median(double values[], int count) {
int i, j, n = count, t;
for (i = 1 ; i <= n - 1 ; i++)
{
for (j = 1 ; j <= n - i ; j++)
{
if (values[j] <= values[j + 1])
{
t = (int) values[j];
values[j] = values[j + 1];
values[j + 1] = t;
}
}
}
if (n % 2 == 0)
return (values[n/2] + values[n/2 + 1])/2.0 ;
else
return values[n/2 + 1];
}
을 내가 다른 파일에 그 기능을 이동하려는. 그래서이 함수를 클릭하고 F6을 클릭하면 파일의 이름을 적습니다.
MathFunctions.h : MathFunctions
후 나는 끝낼
#ifndef PROJECT_NAME_MATHFUNCTIONS_H
#define PROJECT_NAME_MATHFUNCTIONS_H
#endif //PROJECT_NAME_MATHFUNCTIONS_H
MathFunctions.cpp :
#include "MathFunctions.h"
double median(double values[], int count) {
int i, j, n = count, t;
for (i = 1 ; i <= n - 1 ; i++)
{
for (j = 1 ; j <= n - i ; j++)
{
if (values[j] <= values[j + 1])
{
t = (int) values[j];
values[j] = values[j + 1];
values[j + 1] = t;
}
}
}
if (n % 2 == 0)
return (values[n/2] + values[n/2 + 1])/2.0 ;
else
return values[n/2 + 1];
}
나는 C에서 초보자 해요 ++이가 왜 이해가 안 그런 식으로 일해. 나는 오히려이 같은 방식의 선언을 넣어 기대 : * .H 파일과 *의 .cpp 파일에 메소드의 내부에서
double median(double values[], int count);
다음처럼 내 MAIN.CPP에 * .H 파일을 포함 그 :
#include "MathFunctions.h"
왜 이런 식으로 작동하는지 설명 할 수 있습니까? CLion이 만든 파일로 무엇을해야합니까? main.cpp에 헤더 파일 대신 MathFunctions.cpp를 포함시켜야합니까?
저는 CLion을 사용하지 않고 여러분이 기대하고있는 것이 무엇인지를 확인하기 위해 기대하고 있습니다. 정의는 훌륭하지만 #include "MathFunctions.h"는 그 정의 안에 있어야합니다. * .cpp 파일은 데이터 캡슐화를 중단 할 수 있으므로 주 파일에 포함시키지 마십시오. 해당 파일의 개인 함수도 호출 할 수있게됩니다. –
그래서 왜 그렇게 많이 부러 졌습니까? 해결 방법은 없습니까? – Defozo