template<class T>
class base
{
class nestedClass
{
T pos;
};
class derivedClass:public base<T>::nestedClass
{
void fun(){
pos = pos +5; // error: pos is not declared in this scope
}
};
};
답변
C++ 03 절은 14.6/8], 일반적인 조회 규칙 (3.4.1, 3.4.2)을 사용할
말한다 비 의존적 이름의 경우. 템플릿 매개 변수에 종속 된 이름 조회는 실제 템플릿 인수가 알려질 때까지 연기됩니다 (14.6.2). 클래스 템플릿의 기본 클래스 템플릿 파라미터에 의존하는 경우
섹션 14.6.2/3은, 클래스 템플릿 또는 클래스 템플릿의 멤버의 정의에
말한다 기본 클래스 범위는 클래스 템플릿 또는 멤버의 정의 지점 또는 클래스 템플릿 또는 멤버의 인스턴스 생성 중에 정규화되지 않은 이름 조회 중에 검사되지 않습니다.
은 종속되지 않으므로 기본 클래스는 검사되지 않습니다.
두 가지 옵션이 있습니다.
- 를 사용하여 완전히 회원 즉
base<T>::nestedClass::pos
- 사용
this->pos
의 수식 명입니다.
명시 적 기지로 참조 할 수있다 :: nestedClass이 :: pos가 당신이 범위에 POS를 가져하지 않는
참조 http://stackoverflow.com/questions/4810272/c-inherited-template-classes-dont-have-access-to-the-base-class/4810438#4810438 –
거짓말 쟁이라면 댓글과 사람들이 투표합니다. (그리고 아마도 당신의 다른 대답을 upvote) 닫습니다. –
[또는 사용하여 문을 사용]. this->pos += 5;
또는 using nestedclass::pos
을 사용할 수 있습니다. 템플릿 정의에 사용되는 이름의 선언을 찾을 때
'this.pos' ?? 이것은 Java가 아닙니다 –
@Prasoon : true ... 당신의 의견이 나타 났을 때 고쳐주세요. –
- 1. 중첩 클래스 - 부모 클래스에서 중첩 클래스 호출
- 2. 중첩 클래스
- 3. 상속이 나 빠졌습니까?
- 4. YAML에 상속이 가능합니까?
- 5. node.js에는 상속이 필요합니까?
- 6. JS에서 상속이 작동하지 않습니까?
- 7. 자바 스크립트 상속이
- 8. 템플릿 중첩 클래스/구조
- 9. CSS 클래스 중첩 및
- 10. 구조체 중첩 및 클래스
- 11. jQuery 중첩 클래스 선택기
- 12. 중첩 템플릿 클래스 디자인
- 13. 자바 스크립트 중첩 클래스
- 14. .net의 중첩 클래스
- 15. CSS 클래스 중첩
- 16. SwingWorker는 중첩 클래스 여야합니까?
- 17. 중첩 된 클래스 C++
- 18. 트리의 노드에 다중 상속이 허용됩니까?
- 19. 중첩 클래스 또는 중첩 클래스가 아닌?
- 20. 중첩 컬렉션이있는 클래스 - 중첩 클래스를 채우려면 어떻게해야합니까?
- 21. 리팩토링 : 중첩 클래스 또는 별도 클래스?
- 22. 다른 EJB 모듈을 통한 EJB 상속이 가능합니까?
- 23. Perl과 Java의 다중 상속이 동일합니까?
- 24. PostgreSQL 역할 상속이 작동하지 않습니까?
- 25. 다중 상속이 필요한 시나리오가 있습니까?
- 26. Struts2 Model-Driven에서 상속이 가능합니까?
- 27. 중첩 된 동적 PHP는 클래스
- 28. C++, 상속 템플릿 중첩 클래스
- 29. 템플릿 내에서 중첩 클래스 출력
- 30. 정적 중첩 클래스 가시성 문제
구문 오류가 가득합니다. – sth
죄송합니다. 저는 코드를 단순화했습니다. – Sean
* 실제 * 코드를 복사하여 붙여주십시오. 당신은 분명히 많은 코드를 생략했으며, 무엇을 버렸는지 정확히 무엇이 잘못되었는지를 결정하는 데 중요 할 수 있습니다. 컴파일하거나 (* 컴파일해야한다고 생각하는) 최소한의 예제를 생성하고 문제를 보여줍니다. –