我认为这很容易,但它不按我预期的方式工作。这里的语法是什么?
TemplateClass.h
template <typename T>
class TemplateClass
{
T & operator[](size_t n);
TemplateClass.cpp
#include "TemplateClass.h"
template <typename T>
T & TemplateClass::operator[](size_t n)
{
// member declaration not found
}
答案 0 :(得分:7)
您需要提供整个类名 - 包括模板参数:
template <typename T>
T & TemplateClass<T>::operator[](size_t n)
{
// ...
}
(另请注意,范围解析运算符为::
,而不是:
。)