为类定义之外的模板类定义运算符[]()(数组订阅)
Define operator[]() (array subscription) for template class outside of class definition
我以为这很容易,但它并没有按照我预期的方式工作。 这里的正确语法是什么?
模板类.h
template <typename T>
class TemplateClass
{
T & operator[](size_t n);
模板类.cpp
#include "TemplateClass.h"
template <typename T>
T & TemplateClass::operator[](size_t n)
{
// member declaration not found
}
您需要提供整个类名 - 包括模板参数:
template <typename T>
T & TemplateClass<T>::operator[](size_t n)
{
// ...
}
(另请注意,范围解析运算符是 ::
,而不是 :
。
相关文章:
- C++编程从外部文本文件定义数组大小
- 如何在子类中重新定义数组大小?
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 我可以使用常量定义数组的长度,那么为什么 int d[b] 不起作用呢?
- 表达式必须具有常数值,变量不能用作定义数组大小的常数
- 在类中定义数组的方法和字段
- (C++)我的自定义数组无法初始化(编译错误)
- 重写自定义数组类的运算符/开始/结束
- 如何在 C++ 中定义数组数组
- 您可以在类初始化器列表中定义数组大小吗?
- 通过Overloading Operator []访问自定义数组包装器中的元素
- 为自定义数组实现迭代器
- 递归定义数组中的数据对齐和排序
- 如何从类中返回自定义数组项目并操纵其属性?C
- 如何使用类 .h 文件中的静态常量来定义数组的长度
- 使用类定义数组创建C++类
- C++自定义数组容器动态大小
- C++中使用什么类型来定义数组大小
- 在源文件中定义数组,然后在其他源文件中使用它
- C 编程从外部输入文件定义数组大小