인프런 커뮤니티 질문&답변
static 변수 사용에 대해서 헷갈립니다.
작성
·
290
0
Cmera.h에서
public:
// TEMP
static Matrix S_MatView;
static Matrix S_MatProjection;
이렇게 선언해 줬는데
static이라는게 전역 처럼 사라지지 않지만 범위 안에서만 사용 가능한 변수인 거잖아요?
이런 경우 사용 범위가 어떻게 되는 건가요?
그냥 전역처럼 프로그램 전체에서 사용 할 수 있는건가요? 그럼 전역변수랑 마찬가지로 사용되고 있는건가요?
그리고 Camera.cpp에서
Matrix Camera::S_MatView;
Matrix Camera::S_MatProjection;
정의부에 한번 더 써줘야 하는 이유가 좀 이해가 안갑니다. 그냥 .h에서 한번 선언하면 되는 거 아니었나요?
답변 1
2
Rookiss
지식공유자
안녕하세요,
사용 범위는 전역이 맞고,
cpp에서 또 써주는 '이유'라기보다는
그냥 class 안의 static 변수 사용법이 그렇습니다.
아래 내용 참고 바랍니다.
https://www.geeksforgeeks.org/static-keyword-cpp/






클래스 외부의 클래스 이름 및 범위 확인 연산자를 사용하여 사용자가 명시적으로 초기화 하는게 사용법이었군요! 감사합니다!^^