이번에는 거의 그림이 다일 것 같다. 헤더파일과 Cpp파일로 나뉜것에 대해 설명이 있을 것 같음..
일반적으로 우리가 static을 사용하기 위해선 무조건 값을 초기화 해주었어야 했다. 하지만 헤더파일에 선언된 것을 보면 해주지 않았다. 그러한 이유는 const를 사용하지 않고서는 class member 변수에 값을 넣을 수 없는 형태이다. 따라서 추가적인 방법이 필요한데, 이렇게 밖에서 멤버 변수값을 초기화해주는 형식이 가능하다. 이렇게 해서 출력을 하면 다음과 같은 출력을 얻을 수 있다.
아까도 말했다시피 const를 사용하면 class member에서도 값을 초기화 해줄 수 있다. 그대신 앞에 Something.cpp파일에 선언한 부분은 주석처리 하거나 지워줘야 한다.
그리고 main문을 보면 오류가 생기는데 당연히 static member를 const로 선언하였으니 값을 바꾸려고 하는 부분만 오류가 생기는 것이다. 이를 주석처리해주면
이와 같이 나온다.
또한 예전에 한번 언급한적이 있는데, constexpr같은 경우에는 compile타임에 선언되는 느낌이이므로
이처럼 사용할 수 있다.
이에 대한 내용은 https://velog.io/@joon10266/C-2.6-%EC%8B%AC%EB%B3%BC%EB%A6%AD-%EC%83%81%EC%88%98
여기를 참고한다.