C++泛型类错误,问题出在哪里?

C++ generic class error, what's the problem?

本文关键字:在哪里 问题 泛型类 错误 C++      更新时间:2023-10-16

为什么下面的代码无法编译?

namespace mtm {
template<class T>
class Matrix {
private:
public:
class AccessIllegalElement;
};
Matrix::AccessIllegalElement{};
}

我正在尝试实现内部类来处理错误

我得到的错误:

"矩阵"不是类、命名空间或枚举

另外,如果在 AccessIllegalElement 中我想编写一个打印非法索引的函数,哪个更可取?

1( 定义一个接受一个参数的函数

2(为每个类对象提供一个名为index的成员来保存该数据

Matrix

是一个模板,而不是一个类。 当您声明/定义内部项时,您需要让编译器知道此模板的模板参数:

template <typename T>
class Matrix<T>::AccessIllegalElement {};