首页 > 解决方案 > 在模板类的构造函数中使用来自其他类的类型定义

问题描述

我正在尝试创建一个类,其中构造函数接受与模板类中定义的类型定义相对应的类型参数。请参阅以下无法编译的插图片段。

class A
{
    typedef enum test_t {
        a1,
        a2,
        a3
    } test_t;
};

template <class T>
class B
{
    B(T::test_t obj);
};

template <class T>
B<T>::B(T::test_t obj)
{

}

// Explicit definition to let compiler know a template instantiation
template class B<A>;

编译此代码时,出现以下错误:

TemplatedClassTest.cpp:13:14: 错误: 'obj'之前的预期')'</p>

TemplatedClassTest.cpp:17:8: 错误: '(' 标记之前的预期构造函数、析构函数或类型转换

标签: c++classtemplatestypedef

解决方案


推荐阅读