C++ template에 관한 기초적인 질문입니다~

greathero의 이미지

템플릿 쪽 공부를 하다가 중첩 의존 이름에 대해 공부하는데요.
이해가 안가는 부분이 많아서 도움을 구해보고자 합니다.

template<typename T>
class Derived: public Base<T>::Nested { 
public:
  explicit Derived(int x)
  : Base<T>::Nested(X) {
    typename Base<T>::Nested temp;
    ...
  }
  ..
};

위 코드에서 보면 평소에 상속을 할 때 : public Base { ... }; 이런 형태밖에 보질 못해서
조금은 위의 코드가 어색합니다.

템플릿 base 클래스를 상속받을 때 아래 코드처럼 해야될거 같은데

template<typename T>
class Derived<T>: public Base<T> { 
...
};

자식 클래스에선 와 같은 템플릿 매개변수를 명시하지 않는게 맞나요?
그리고 :public Base::Nested의 뜻을 이해할 수가 없습니다..ㅠ
중첩 의존 이름만 상속을 받겠다는건지... 이런게 가능한가요?
으어... 상당히 헷갈리네요ㅠㅠ

고수님들 도와주세요~~~

greathero의 이미지

클래스 이름 쓸때는 를 안붙여주는군요...