读书人

返回内嵌类指针有关问题

发布时间: 2013-07-27 22:21:01 作者: rapoo

返回内嵌类指针问题

大家好,问一个返回内嵌类问题,如下:
#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*

读书人网 >C++

热点推荐