游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2650|回复: 7

请教高手,C++里的“结构定义”问题。。。

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-1-23 17:48:00 | 显示全部楼层 |阅读模式
  1. typedef struct tagVECTOR
  2. {
  3. float X, Y, Z;
  4. }
  5. VECTOR;
复制代码

我C++很菜,想请教高手。

为什么我们需要已经有了“tagVECTOR”,还需要一个“VECTOR”呢?

设计C++语言的人认为这样会有什么好处吗?
我倒是觉得C++里的结构定义只要写成
typedef struct VECTOR
{
float X, Y, Z;
}
就已经够了。
为什么开始的时候要写一个“tagVECTOR”,然后定义完还得再写个“VECTOR”呢?
有必要写两个不同的名字吗?
[em5]有什么好处呢?

12

主题

128

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2008-1-23 18:47:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

typedef struct tagVECTOR{ float X, Y, Z;}VECTOR;

这个..应该是
struct tagVECTOR{ float X, Y, Z;};
然后typedef struct tagVECTOR VECTOR;

做了两件事情的.

c++里面你只需要写成
struct VECTOR{ float X, Y, Z;};
就足够了.

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2008-1-23 23:18:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

因为在C中,声明结构体变量,需要加struct关键字:
struct tagVECTOR v;
没有则不行,typedef后就可以不要关键字:
VECTOR v;

而C++则无须如此,但为保持一定的兼容性,习惯上对于结构体等,用typedef处理掉。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2008-1-23 23:53:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

其实你可以:
  1. typedef struct {
  2.     float X, Y, Z;
  3. } VECTOR;
复制代码

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-24 10:23:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

原来是为了方便写代码啊。
谢谢!

4

主题

77

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2008-1-25 10:39:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

哈哈,c++的技巧很多的.这只是些基础,我学习c++,学习了3年.现在还是菜的很.学习c++是一个长时间的事

4

主题

77

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2008-1-25 10:42:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

楼主的分数不低哦,可以看的出是论坛老者哦,学习中,多发帖子.赚点声望.

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2008-1-25 16:55:00 | 显示全部楼层

Re:请教高手,C++里的“结构定义”问题。。。

就是为了兼容C
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 23:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表