c++ 모듈화 프로그래밍 중 상수화를 통한 switch 질문이요~
안녕하세요 ~
---------------------------------------
헤더파일 aaaaaa.h
---------------------------------------
#include[iostream] <<------ 보이지 않아 이렇게 표기 했습니다.
#include[stdio.h]
class aaa{
public:
static const int pipe;
};
void cccc();
----------------------------------------
Main.cpp
---------------------------------------
#include"aaaaa.h"
const int aaa::pipe =1;
void main(){
switch(1)
case aaa::pipe:
printf("???");
cccc();
}
-----------------------------------------------
dddd.cpp
-----------------------------------------------
#include"aaaaa.h"
void cccc(){
int a = 1;
switch(a)
{
case aaa::pipe : // 에러 부근 !!!
}
printf("%d",aaa::pipe);
}
--------------------------------------------------------
질문 1>
단일 프로그래밍을 할때는 정상적으로 출력이 되어 지는데
모듈화를 시켜서 프로그래밍을 짜면 case 부근에서 에러가 발생합니다.
모듈화를 잘못 했나 하고~ printf("%d",aaa::pipe); 문으로는 잘 출력이 되는데 왜 그런건가요??
질문2>
만약에 위의 구문이 문법적으로 안되는 것이라면..
#define 으로 전역 적으로 상수화 시키는법 말고 다른 좋은 방법이 있을까요??
enum 도 사용해보았는데 enum은 범위나 컴파일러의 호환성등 문제의 소지가 있다고 해서 생략 했습니다.
inline 함수로 짜는방법도 있겠지만 변수 처럼 사용하고 싶어서요..
개발자님들께서는 주로 어떠한 방법으로 class 안에 변수를 상수화 시켜 이용하시나요??
댓글 달기