定义链表节点出现问题了,不写不知道,一写吓一跳。

Timor君 发布于 2012/06/19 16:05
阅读 518
收藏 0

代码如下:

template<typename _type>
typedef struct _node 
{
	_type   m_Type;
	_node   *m_pNext;
}Node, *LPNode;

在vs2010下提示如下错误:

1>f:\code\minilist\minilist\minilist.cpp(7): error C2823: a typedef template is illegal

1>f:\code\minilist\minilist\minilist.cpp(11): error C2988: unrecognizable template declaration/definition

1>f:\code\minilist\minilist\minilist.cpp(11): error C2059: syntax error : '<end Parse>'

//==============================
求指导。

加载中
0
Lunar_Lin
Lunar_Lin

typedef struct 在C里能省去 定义变量时 多余的 struct . C++里已经没必要typedef了。
此外 typedef 的确没有模板版本,如果需要可以用下面的写法:
template<class T>
class LONG_LONG_LONG_NAME;
template<class T>
class shortName : public LONG_LONG_LONG_NAME {};
用一个空空的继承  实现模板形式的typedef.
这种做法google V8引擎 代码里也使用了.

0
永远对你好
永远对你好
不都说了么 typedef template 不合法。。
0
Timor君
Timor君

引用来自“talentwang”的答案

不都说了么 typedef template 不合法。。
知道原因了,这样写不合法。
0
子达如何
子达如何
把typedef去掉就好了
0
永远对你好
永远对你好
struct和class后面的分号;就是用来定义的别名的,不用typedef。
0
Timor君
Timor君

引用来自“talentwang”的答案

struct和class后面的分号;就是用来定义的别名的,不用typedef。
	typedef struct node
	{
		int i;
	}Node, *LPNode;

这样写是可以的哦
0
永远对你好
永远对你好

引用来自“cghy2011”的答案

引用来自“talentwang”的答案

struct和class后面的分号;就是用来定义的别名的,不用typedef。
	typedef struct node
	{
		int i;
	}Node, *LPNode;

这样写是可以的哦
模版的事儿。
0
曾小亮
曾小亮
 typedef 跟template你见过一起用的吗?
返回顶部
顶部