VS中C++类内结构体的使用出错
代码如下,不知道为什么总是提示无法识别Node结构体类。
error C2143: syntax error : missing ';' before '*'
错误:error C4430: 缺少类型说明符 - 假定为 int。
#pragma once
#include <iostream>
using namespace std;
template <class T>
class CTest
{
private:
T value;
protected:
struct Node
{
int svalue;
Node* next;
};
protected:
Node* createNode();
public:
CTest(T pval):value(pval){}
~CTest(void){}
CTest* createNewTest(T pval);
void println();
};
template <class T>
CTest<T>* CTest<T>::createNewTest(T pval)
{
return new CTest(pval);
}
template <class T>
void CTest<T>::println()
{
cout<<value<<endl;
}
template<class T>
CTest<T>::Node* CTest<T>::createNode()
{
return NULL;
}
[解决办法]
诡异的颜色设置。。。
template<class T>
typename CTest<T>::Node* CTest<T>::createNode()
{
return NULL;
}