Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何定义内部类_C++_Templates - Fatal编程技术网

C++ 如何定义内部类

C++ 如何定义内部类,c++,templates,C++,Templates,我在其中有一个矩阵类和一个列类: template<class T> struct MatrixT { template<class T> struct ColumnT { }; }; 因为实际上,我大部分时间都使用double元素。但是我还想为columnT类定义类似的内容。我试过了 typedef MatrixT<double>::ColumnT<double> matrix::column; typedef

我在其中有一个矩阵类和一个列类:

template<class T>
struct MatrixT
{
    template<class T>
    struct ColumnT
    {
    };
};
因为实际上,我大部分时间都使用
double
元素。但是我还想为
columnT
类定义类似的内容。我试过了

typedef MatrixT<double>::ColumnT<double> matrix::column;
typedef矩阵text::ColumnT矩阵::column;
但编译失败,出现错误

错误-不允许使用限定名称

有没有办法实现我想要的


我希望能够键入
matrix::column c就像我可以键入
矩阵m一样

只需删除第二个
模板

…应按预期工作。

是否尝试过
MatrixT::ColumnT
参数T可能会被隐藏,因为两个模板对类型使用相同的占位符。也可以为T尝试不同的名称
typedef MatrixT<double>::ColumnT<double> matrix::column;
template<class T>
struct MatrixT
{
    struct ColumnT
    {
    };
};
typedef MatrixT<double> matrix;