在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
关键词 typename 下面是 Array2D<T> 类模版的下标操作符函数定义:
// 下标操作符函数
template <typename T> Array2D<T>::RowArray Array2D<T>::operator[](int row) { // error if ( row < 0 || row >= rows_ ) { throw out_of_range("Array2D<T>: invalid row!"); } return RowArray(*this, row); } 在编译程序时该函数定义所在行会产生下面的错误: array2d.h:96: error: expected constructor, destructor, or type conversion before "Array2D"
这个错误的产生原因是编译器无法知道 RowArray 是 Array2D<T> 的内嵌类,而被误认为是一个 static 成员,解决办法就是在 Array2D<T>::RowArray 前面加上 typename 关键词,显示告诉编译器 Array2D<T>::RowArray 是一个类型。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论