c++ - 结构中的模板结构问题 -

标签 c++ templates

template <class T>
struct _sApplicationPoolHeader
{
    int iApplicationList;
    T* oData;
};

template <class T>
struct _sAppPoolNode
{
    _sAppPoolNode* psNext;
    _sApplicationPoolHeader<T> psHeader;

    _sAppPoolNode()
    {
        psNext = NULL;
    }
};

为什么我在声明时遇到编译错误: 附: 如果我在类上方声明模板,它的工作。

class ApplicationPoolMng
{
private:
    template <class T>
    _sAppPoolNode<T>  m_psAppPool;
}

error: data member 'm_psAppPool' cannot be a member template _sAppPoolNode<T>  m_psAppPool;

最佳答案

该语法只能用于定义函数成员模板。 改用:

template <class T>
class ApplicationPoolMng
{
private:
    _sAppPoolNode<T>  m_psAppPool;
};

所有类都需要模板化,而不仅仅是成员。

关于c++ - 结构中的模板结构问题 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199024/

相关文章:

c++ - 如何在图表的 Y 轴上设置自定义值

c++ - Qt正则表达式在[]之间分割字符串

c++ - 试图操纵 OpenCV 上图像的饱和度

c - GTK+ 中基于模板的 UI 的优点是什么

c++ - 可变模板函数 : argument number for each argument

c++ - Arduino/C++ GlobalVars 与局部变量

c++ - 在 C++ 中销毁动态分配的内存(数组对象)

模板的C++类成员访问问题

c++ - 将 lambda 传递给可变参数 std::function 时的类型推导

c++ - 堆栈类中的赋值运算符问题