结构中的模板结构问题 -

时间:2016-07-05 08:49:04

标签: c++ templates

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

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

    _sAppPoolNode()
    {
        psNext = NULL;
    }
};

为什么我在声明时遇到了一个complilation错误: P.S: 如果我在类上面声明模板,那就是它的工作。

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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