我有一個依賴於另一個模板類的模板類。 TemplateClassB如何使用TemplateClassA類型TypeA?模板類如何在C++中使用另一個模板類中的類型?
template <int L>
class TemplateClassA {
public:
typedef unsigned TypeA;
};
template <typename E, typename F>
class TemplateClassB {
TemplateClassA::TypeA var; //error: invalid use of template-name 'TemplateClassA' without an argument list
};
int main(){
TemplateClassA<1> A = TemplateClassA<1>();
}
您需要在'var'的聲明中爲'TemplateClassA'指定一個模板參數,並使用'typename' – Brian
請稱它們爲「class templates」。他們是製作課堂的模板,而不是一個有趣的課堂。 –
可能的重複[哪裏,爲什麼我必須把「模板」和「typename」關鍵字?](http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to -put-the-template-and-typename-keywords) – Constructor