C/C++
- Tetris 구현
- 깃허브 링크 : CppStudy/Tetris at main · Modisc/CppStudy (github.com)
- 출처 영상 : (16) C언어/C++ 강의 90화 Tetris 1 Stage 구성 [어소트락 게임아카데미] - YouTube
- TextRPG 상속을 이용한 구현
- TextRPG는 이미 앞에서 여러번 구현했던 내용이고 해당 내용을 상속으로 구현하는 강의인 것 같아서 추후 직접 해보기 위해 미뤄둠.
- 클래스 내부에 static 변수를 선언하는 경우
LNK2001 : "~~~" 외부 기호를 확인할 수 없습니다.
LNK1120 : 1개의 확인할 수 없는 외부 참조입니다.
- 위와 같은 오류가 발생할 수 있음. 오류의 원인은 다양하지만 나의 경우는 static 변수를 찾을 수 없어 발생한 오류였음.
- 정적변수 static을 사용할 경우 클래스 내부에 선언을 해주면 정의가 필요한데 이 정의가 클래스 외부에서 이루어져야 합니다.
-- static 변수는 객체가 아니라 클래스 기반으로 생성된다. 즉, 클래스 내부에 선언을 해두면 데이터 영역에 변수가 할당되고 클래스 기반으로 만들어진 객체들이 이 변수를 공유하는 것이다.
-- 모든 객체가 공유하는 멤버 변수이므로 프로그램 시작때부터 메모리를 차지하고 있으며, 메모리에 내내 값이 유지되어야 한다.
-- static 멤버 변수는 모든 객체가 공유해야 하므로 프로그램 전체 영역에서 메모리가 유지 돼야 한다. 따라서 반드시 전역 범위에서 정의 및 초기화를 해주어야 한다.
-- 또한, 정의 및 초기화는 헤더파일에선 불가능하므로 반드시 .cpp 파일에서 초기화 해준다.
※ 여러 곳에서 헤더 파일을 include 할 때마다 static 멤버 변수를 여러번 정의 및 초기화 하는게 된다.
'TIL' 카테고리의 다른 글
[TIL] 20221011 성장일지 (0) | 2022.10.11 |
---|---|
[TIL] 20221007 성장일지 (0) | 2022.10.07 |
[TIL] 20221005 성장일지 (0) | 2022.10.05 |
[TIL] 20221004 성장일지 (0) | 2022.10.05 |
[TIL] 20220930 성장일지 (0) | 2022.09.30 |
댓글