• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Managers 질문 정적 멤버 함수 접근

22.08.25 11:19 작성 조회수 128

0

현재 유일한 Managers 클래스의 

정적 멤버 변수로

 static Managers s_instance; 


 static Managers Instance { get { Init(); return s_instance; } } 

 

이렇게 만들어 주셨는데 기본 접근 제한자 셋팅은 private이라 외부에서 접근 불가능 하고

static이라 데이터 영역에 올라가고 해당 클래스 내부에서만 접근이 가능하다.

(제가 이해한 것이 맞나요?)

 

그런데 궁금한것이 다른클래스에서(외부에서)

 

Managers.Instance로 접근이 불가능 한것은 이해가 됩니다.

 

그러면 강제로 Managers mg = new Managers();를 동적할당하여 객체를 만든 경우

 

mg.Instance로 접근을 할려고 하니 보호수준 때문에 접근이 불가능 하다는데 mg는 Managers의 객체로 Managers의 데이터를 가지고 있을 텐데 왜 접근이 불가능 한 것인가요?

정적 멤버 함수는 객체가 있든 없든 둘다 다 접근이 가능해야 하는 것 아닌가요??

 

(C++에서는 객체의 유무의 상관없이 정적 멤버 함수 호출이 가능하던데 그냥 C#에서는 객체를 만들어서 객체가 있어도 정적메버 함수(프로퍼티)에 접근이 불가능 한 것인가요?)

 

답변 1

답변을 작성해보세요.

0

public static Managers Instance { get { Init(); return s_instance; } } 
~으로 열어주시면 됩니다.

Managers mg = new Managers();로 했다고 해서
접근이 가능하다는 얘기는 아닙니다.
자동차를 구매하셨다고 그 안에 있는 엔진 기능을 일반 고객이 사용하진 않겠죠?