我已经实现了一个Matrix类,它提供了一个调用操作符来访问它的元素:
template <typename T>
class Matrix {
private:
T* data;
public:
// constructors, destructor, other functions...
T& operator () (unsigned row, unsigned col) {
return data[row*cols+col];
}
}
在某些应用程序代码中,我使用的示例如
Matrix<double> m;
m(0,0) = 3.14;
这会产生以下编译器错误:
type 'Matrix<double>' does not provide a call operator
这有什么问题?