C++ 에서 static const int 프로퍼티의 초기화에 대해 ..
안녕하셔요 .
C++ 에서 "static const 프로퍼티" 를 이해하기가 힘들어서요 .
enum Sex {MALE, FEMALE};
class Profile
{
public:
static const int age = 20; // 클래스 내*외부 초기화 둘 다 가능
static const Sex s = FEMALE; // 클래스 내*외부 초기화 둘 다 가능
static const double weight; // 클래스 외부에서만 초기화 가능
};
const double Profile::weight = 48; // Profile::weight 을 외부에서 초기화
void main(void)
{
}
본래, static 프로퍼티는 클래스 외부에서 초기화 해줘야 하는데 ,..
"static const int 나 static const enum타입" 의 프로퍼티일 때는 ..
내부*외부 둘 다에서 초기화 할 수가 있잖아요 ?
궁금한 게 ..
const static int / enum 타입의 프로퍼티는 .. not-const static int / enum 타입의 프로퍼티와 달리 ..
어째서 내부*외부에서 초기화가 가능한 것인지 궁금합니다 .
또한, "const static 프로퍼티" 중에서 int 나 enum 타입을 제외한 프로퍼티들은 ..
외부 초기화만 .. 허용하는데 .. 이유가 무엇인가요 ?
(위의 예에서 static const double weight 에 해당)
참고로 ,..
테스트 환경에 따라 "const 프로퍼티" 를 "static const 프로퍼티" 와 동일하게 간주하는 컴파일러도 있더라고요 ...
(intel c++ 컴파일러가 그러했고요)
visual c++ 은 아예 static const int/enum타입 프로퍼티에 대한 내부 초기화를 지원하지 않고요 .
복잡하네요 ^^ ;;
댓글 달기