2012-12-05 4 views
0

다음 문제에 대해 도와주십시오. 프로젝트의 다른 파일에 포함되어있는 log.cpp 파일이 있습니다. log.cpp 또는 log.h의 실제 변경없이 log.cpp에 영향을주는 파일 중 하나에서 정의를 선언해야합니다. 어떻게해야합니까? 미리 컴파일 된 헤더가있는 솔루션을 사용할 수 없습니다.특정 파일에 대해 정의하십시오.

그리고 또 하나의 질문은 어떻게 정적 함수를 정의 할 수 있습니까? 내 코드에서 CClass::Func을 호출하면 어떻게 다른 방향으로 리디렉션 할 수 있습니까?

+0

실제로 .cpp가 포함되어 있습니까? 그건 좋은 연습 아니에요 ... –

+0

난 단지 헤더를 포함하고, 그냥 정비사 실수 :) 그럼이 질문으로 나를 도울 수 있습니까? –

답변

1

머리글에 영향을하려는 경우, 당신은 그이 (가) 포함하기 전에 정의 넣을 수 있습니다 : 당신이 CPP를 포함하지 않는

#define SOMEDEFINE SOMEVALUE 
#include log.h 
// May want to remove or change our define here 
#undef SOMEDEFINE 

이, 당신은 당신이 log.h를 포함하는 것을 의미 가정한다 다른 파일에서. 별도의 .h 및 .cpp 파일을 가지고있는 아이디어는 .h가 모든 컴파일 단위에서 볼 수있는 인터페이스 인 반면 cpp는 코드 자체이며 한 번만 컴파일해야하며 컴파일 단위에 따라 다르지 않아야합니다. 그것을 참조하십시오.

0

내가 아는 모든 C++ 컴파일러를 사용하면 명령 줄에서 #define 기호를 사용할 수 있습니다. 일반적으로 -D option을 사용하여이 작업을 수행합니다.

관련 문제