의 별명은 어떻게 ProjectInstance 같은 기본적인 무언가로/별칭이 형식 정의를 할 수 있습니다기본 타입 정의/정적 변수
((ProjectType*)NamespaceOne::NamespaceTwo::ClassName::StaticVariable)->x=0;
이 정적 클래스이고 때마다 짜증나는 캐스팅 네임 스페이스 +하여 호출.
#typedef ((ProjectType*)NamespaceOne::NamespaceTwo::ClassName::StaticVariable) ProjectInstance
ProjectInstance가있다 : 나는 어떤 종류의 별명이 점을 단순화 할 수 있습니다 어떻게 그래서 난 그냥
ProjectInstance->x=0;
내가 원래이 라인을 따라 뭔가를 생각으로 그것을
참조 할 수 있습니다 ProjecType *에 캐스팅 된 StaticVariable의 별칭입니다.
NamespaceOne::NamespaceTwo::ClassName::StaticVariable
StaticVariable은 BaseType의 인스턴스입니다. ProjectType은 BaseType을 확장하므로 ProjectType 클래스에 추가 변수 "x"가 있기 때문에 StaticVariable을 ProjectType으로 캐스팅합니다.
내가 피하려고하는 것 : 이 정적 변수에 액세스해야하는 각 클래스에서 포인터/함수를 선언합니다.
지금까지 해결책은 "네임 스페이스 사용"이었습니다. 이전에 알고 있었지만 지금까지는 가장 좋은 게시 솔루션입니다. 나는 그것을 줄일 수 있었다 "클래스 이름"클래스 안에 새 포인터를 작성하여
ClassName::ProjectStaticVariable->x=0;
: 나는 다른 해결책을 가지고
((ProjectType*)ClassName::StaticVariable)->x=0;
:
그래서 우리는에 코드의 오리지널 라인을 절단 훨씬 더.더 줄이려면 더 좋은 방법이 있습니까?
"정적 클래스"란 무엇입니까? –
Doh, 실수로 내 변수 이름을 StaticClass로 변경했습니다. StaticVariable을 말하려고했습니다. – Grapes
왜 캐스팅 하시겠습니까? 'ProjectType *'타입의'StaticVariable'은 왜 이미 존재하지 않습니까? –