【发布时间】:2023-03-16 01:47:02
【问题描述】:
我正在做一个需要使用模板完成的作业:它是一个矩阵类。
其中一个告诉我重载operator ()(int r, int c);,这样我就可以使用obj(a, b); 访问我的数据或使用obj(a, b)=100; 更改它。
我的班级模板是template<class T, int C, int R>;
然后我在公共范围内创建了我的班级:
T& operator()(int r, int c);//LINE 16
实现很简单。
我尝试了两种方式:
template <class T>
T& Matrix::operator()(int r, int c){
return matrixData[r][c];
}
template <class T, int C, int R>
T& Matrix::operator()(int r, int c){
return matrixData[r][c];
}
在最后一个我得到错误告诉我:
16: Error: expected type-specifier before '(' token
上面的第 16 行有一个注释错误:
no 'T& Matrix<T, C, R>::operator()(int, int)' member function declared in class 'Matrix<T, C, R>'
【问题讨论】:
标签: c++ templates operator-overloading