先生,这样不可以!!!!

秀小川 2012-05-14 02:54:54
像下面这样,为什么不行?

template <class T>
typedef struct Node
{
T NumNode;
Node<T> *next;
}Node,*linkNode;

error C2059: syntax error : '<end Parse>'
...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
baichi4141 2012-05-14
  • 打赏
  • 举报
回复
很明显楼主还不知道C++里面的struct只是默认权限为Public的class
所以typedef struct x x这种语句根本没必要,使用x完全不需要带上struct
某大一菜鸟 2012-05-14
  • 打赏
  • 举报
回复
LZ是要尝试结合c 与 C++的风格么...
jiandingzhe 2012-05-14
  • 打赏
  • 举报
回复
实际上:
template<typename T> class Node;

不是一个类。
只有
Node<XXX>

才是一个类
j8daxue 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
引用 9 楼 的回复:

可以,类似众多类模板库里的做法,把最常用的一些泛型做别名。
typedef Node<int> IntNode;
..
.

也就是不同类型 要用不同的别名?
[/Quote]
必须的,因为实例化出来的是不同的类。
要是心存好奇或疑惑,看看C++模板那本书吧。
秀小川 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

可以,类似众多类模板库里的做法,把最常用的一些泛型做别名。
typedef Node<int> IntNode;
..
.
[/Quote]
也就是不同类型 要用不同的别名?
cbzjzsb123 2012-05-14
  • 打赏
  • 举报
回复
可以,类似众多类模板库里的做法,把最常用的一些泛型做别名。
typedef Node<int> IntNode;
..
.
j8daxue 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
唉,纠结了! 也就是说结构体如果要用模板的话,就不能用别名?
[/Quote]
可以,类似众多类模板库里的做法,把最常用的一些泛型做别名。
typedef Node<int> IntNode;
..
.
秀小川 2012-05-14
  • 打赏
  • 举报
回复
唉,纠结了! 也就是说结构体如果要用模板的话,就不能用别名?
赵4老师 2012-05-14
  • 打赏
  • 举报
回复
语法糖很粘的!(^_^)
j8daxue 2012-05-14
  • 打赏
  • 举报
回复
template <class T>
struct Node
{
T NumNode;
Node<T> *next;
};
要定义别名得显示指定T,否则T都不知道是什么类型,typedef是把一个已知合法类名定义成其他名字。
秀小川 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

客官,不可以用typedef在模板里面的哦。模板struct是可以支持的,但是你不要定义别名了,定义多了搞的C++都不知道到底是谁跟谁了
[/Quote]
如果我想定义别名怎么办?下面这样为什么也不行?

struct Node
{
T NumNode;
Node<T> *next;
};
template <class T>
Node *linkNode;
W170532934 2012-05-14
  • 打赏
  • 举报
回复
客官,不可以用typedef在模板里面的哦。模板struct是可以支持的,但是你不要定义别名了,定义多了搞的C++都不知道到底是谁跟谁了
bdmh 2012-05-14
  • 打赏
  • 举报
回复
struct Node
{
T NumNode;
Node<T> *next;
};
nice_cxf 2012-05-14
  • 打赏
  • 举报
回复
只知道有模版类,不知道还有模版结构。。。

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧