我里面有一个矩阵类和一个列类:
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;
最佳答案
只需删除第二个template<class T>
template<class T>
struct MatrixT
{
struct ColumnT
{
};
};
然后
ColumnT
应该使用与MatrixT
相同的类型,并且您的typedef ...typedef MatrixT<double> matrix;
...应该可以按预期工作。
关于c++ - 如何typedef内部类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41266210/