我有一个矩阵类和一个列类:
template<class T>
struct MatrixT
{
template<class T>
struct ColumnT
{
};
};
请注意,ColumnT
始终与MatrixT
保持相同的类型。
为方便起见,我定义了
typedef MatrixT<double> matrix;
实际上,我大部分时间都会使用double
元素。但我也想为columnT
类定义类似的东西。我试过了
typedef MatrixT<double>::ColumnT<double> matrix::column;
但编译失败并显示错误
错误 - 不允许限定名称
有没有办法达到我想要的目的?
我希望能够输入matrix::column c;
,就像我可以输入matrix m;
答案 0 :(得分:2)
只需删除第二个template<class T>
template<class T>
struct MatrixT
{
struct ColumnT
{
};
};
ColumnT
应使用与MatrixT
相同的类型,以及您的typedef ...
typedef MatrixT<double> matrix;
......应该像你期望的那样工作。