문제

여러 수업이있는 경우 typedef'D 변수와 같은 변수 :

class X {

typedef token TokenType;

bool doStuff()
{
TokenType data;
fillData(&data);
return true;
}

};

그것을 무시할 수있는 방법이 있습니까? typedef ~을 위한 TokenType 파생 수업에서?

NB 이것은 템플릿을 사용하기에 좋은 장소가 아닙니다 (이것은 이미 템플릿 클래스이며 변경 될 수 있습니다. 무한] 재귀 정의 [class X < class Y = class X < class Y . . .> > 등.].)

도움이 되었습니까?

해결책

당신이 할 수있는 일은 그림자이지만 무시하지는 않습니다. 즉 : Tokentype에 대한 자체 typedefs가있는 파생 클래스 Y를 정의 할 수 있지만 누군가가 Y :: Tokentype를 직접 또는 정적으로 유형으로 입력 한 객체를 통해 X :: Tokentype를 통계적으로 참조하는 모든 코드를 통해서만 작동합니다. 유형 Y의 물체에서도 그렇게 할 것입니다.

다른 팁

TypEdef는 컴파일 시간에 해결됩니다. 재정의가 특징이기 때문에 우선적으로 의미가 없을 것입니다. 실행 시간 다형성.

단순히 Typedef를 재고하는 것만으로도 작동합니다. 왜 템플릿이 나쁜 생각이라고 생각하는지 잘 모르겠습니다. 재귀 템플릿은 실제로 실현 가능합니다.

짧은 대답 : 아니요, typedefs를 무시할 수 없습니다.

긴 답변 : typedef는 기본적으로 다른 유형의 별명 또는 동의어입니다. 그들은 새로운 데이터 유형을 정의하지 않습니다. 그들은 단순히 유형에 새로운 이름을 부여하는 방법을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top