강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

baljang님의 프로필 이미지
baljang

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

Camera

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님의 프로필 이미지
Rookiss
지식공유자

안녕하세요,

사용 범위는 전역이 맞고,
cpp에서 또 써주는 '이유'라기보다는
그냥 class 안의 static 변수 사용법이 그렇습니다.

아래 내용 참고 바랍니다.

https://www.geeksforgeeks.org/static-keyword-cpp/

baljang님의 프로필 이미지
baljang
질문자

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

baljang님의 프로필 이미지
baljang

작성한 질문수

질문하기