-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
[4:00]static 멤버 변수의 초기화에서 문득 궁금해진 점
22.08.28 22:38 작성 조회수 335
2
class Some {
public:
static int _val;
};
int Some::_val = 1;
마지막 줄인 int Some::_val = 1; 에서 앞에 int가 붙는 이유는 무엇인가요?
Some이라는 클래스 안의 _val이라는 int형 멤버 변수라는 것으로 충분히 의미가 전달될 수 있는데, 앞에 int를 붙여서 변수 선언 과정처럼 초기화해야 하는 이유가 뭘지 궁금합니다.
답변을 작성해보세요.
2
강민철
2022.08.30
그렇게 명시하지 않으면 아래와 같이 오류가 떨어집니다.
(사실 이는 아래 오류 메세지에 대한 해석 그대로이긴 하지만..^^;;)
C++에서는 모든 선언에 대해 type이 지정되어 있어야 하며,
int를 생략하면 컴파일러가 type이 무엇인지 모르기 때문입니다.
(Class 멤버의 형이 무엇인지까지는 유추하지는 않기 때문입니다)
cc.cc:9:7: error: C++ requires a type specifier for all declarations
Some::_val = 1;
^
1 error generated.
답변 1