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;
答案 0 :(得分:2)
该语法只能用于定义函数成员模板。 改为使用:
template <class T>
class ApplicationPoolMng
{
private:
_sAppPoolNode<T> m_psAppPool;
};
所有课程都需要模板化,而不仅仅是成员。