请问关于c++类模板中成员函数正确的定义问题

安非他命 发布于 2017/03/03 22:37
阅读 310
收藏 0
c++

小弟最近在学c++,我在vs2013里面写了这么一段代码:

template<class T, class N>
class Hello
{
protected:
	struct CNode
	{
		CNode* prev;
		CNode* next;
		T data;
	};
protected:
	CNode* NewNode(CNode*, CNode*);
};

template<class T, class N>
CNode* Hello<T, N>::NewNode(CNode*, CNode*)
{
	CNode* node = new CNode;
	return node;
}

然后编译器就通知我说 T和N都是未声明的标识符

请问正确的定义应该是什么呢?

加载中
0
GestureWei
GestureWei

CNode的命名空间是在Hello内的,类外写要写全

template<class T, class N>
typename Hello<T,N>::CNode* Hello<T, N>::NewNode(typename Hello<T,N>::CNode*, typename Hello<T,N>::CNode*)
{
	CNode* node = new CNode;
	return node;
}

 

返回顶部
顶部