• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

static 변수 사용에 대해서 헷갈립니다.

22.02.07 16:35 작성 조회수 190

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

안녕하세요,

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

아래 내용 참고 바랍니다.

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

baljang님의 프로필

baljang

질문자

2022.02.07

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