返回内嵌类指针问题
大家好,问一个返回内嵌类问题,如下:
#include<iostream>
using namespace std;
template <class Type> //第3行
class A
{
struct node{ //内嵌类
int a;
};
public:
node* function();
};
template <class Type>
A<Type>::node* A<Type>::function(){
node *s;
return s;
}
int main()
{
return 0;
}
在vc++6.0上可以通过,
在vs2012上,第三行出现错误信息:
错误4error C1903: 无法从以前的错误中恢复;正在停止编译c:\users\aaaaaa\documents\visual studio 2012\projects\2\2\new1.cpp17
错误2error C2143: 语法错误 : 缺少“;”(在“*”的前面)c:\users\aaaaaa\documents\visual studio 2012\projects\2\2\new1.cpp17
错误3error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 intc:\users\aaaaaa\documents\visual studio 2012\projects\2\2\new1.cpp17
警告1warning C4346: “A<Type>::node”: 依赖名称不是类型c:\users\aaaaaa\documents\visual studio 2012\projects\2\2\new1.cpp17
谢谢
[解决办法]
返回类型这么写.
typename A<Type>::node*