일부 클래스 (예 : ClassX
, ClassY
등)에 루틴을 제공하는 라이브러리 (MyLib.h
및 MyLib.cpp
)가 있습니다. 는 MyLib.h
에서 나는 #define
처리기 지시문을 사용하여 두 개의 상수를 정의 : 나는 각각의 문자열을 사용하고자하는 경우C++ #define에 액세스 수정 자 설정 CONSTANT_NAME constant_value
#define LOCAL_STR "this string can not be shared among classes that don't #include "MyLib.h""
#define TOSHARE_STR "this string can be shared among classes that #include "MyLib.h""
두 문자열 값을 제안한다. 제 생각에는 첫 번째 코드는 MyLib.cpp
코드에만 사용하고 두 번째 코드는 ClassX
, ClassY
코드 등을 사용해야합니다.
C++는이 두 상수에 대해 원하는 가시성을 정의하는 방법을 제공합니까? 현재 그들은 모든 곳에서 볼 수 있습니다 ...
클래스가 일을 #include를하지 않는 IFDEF 블록을 그들을 정의 할 수 있습니다 일부 공유 사람이 필요하면
, 번역 단위는 않습니다. #defines는 상수가 아니며 텍스트 대체 규칙입니다. – Caleth