社区
C++ 语言
帖子详情
请问1下定义struct或class时的一个问题。
lbeast
2005-12-21 05:11:24
当定义struct的时候
struct Lnode
{
char data;
Lnode next; //这里报错
};
Lnode next不可以用,报错Lnode正在被定义
但改为Lnode *next就可以了。
为什么呢??
class中定义也一样。
...全文
149
10
打赏
收藏
请问1下定义struct或class时的一个问题。
当定义struct的时候 struct Lnode { char data; Lnode next; //这里报错 }; Lnode next不可以用,报错Lnode正在被定义 但改为Lnode *next就可以了。 为什么呢?? class中定义也一样。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaocai0001
2005-12-21
打赏
举报
回复
>> 钱能的那本红皮的c++的书里有讲啊。结构中成员不能重复包含自身的。但是可以包含指向相同结构的指针。
设想, 如果允许结构体自己包含自身的定义, 那会出现什么样的结果呢?
struct Lnode
{
char data;
Lnode next; //这里报错
};
如果这样的定义是允许的话
那么sizeof(struct Lnode) = ?
watermelontx
2005-12-21
打赏
举报
回复
你定义一个变量时,要为其分配内存空间,而该类(结构)定义还没有结束
所以无法确定其大小,也就无法分配内存空间,所以出错
而指针不同,大小固定,所以可以啊
zhousqy
2005-12-21
打赏
举报
回复
只可以包含指向相同结构的指针。
sinall
2005-12-21
打赏
举报
回复
学习,×尽人亡。
braveman82
2005-12-21
打赏
举报
回复
编译器不知道要给这个结构体分配多大的空间
qfeng_zhao
2005-12-21
打赏
举报
回复
呵呵,说的不是很正确
应该是确定成员变量所占的内存空间大小
goodluckyxl
2005-12-21
打赏
举报
回复
Lnode next; //这里报错
还没有看到Lnode的定义 怎么定义他呢?
iamcaicainiao
2005-12-21
打赏
举报
回复
总之,就是规定了阿。否则,自己包含自己,不断的包含自己,不就是死循环么。包含指针,则可以把相同的结构变量连接起来,诸如链表等数据结构。
qfeng_zhao
2005-12-21
打赏
举报
回复
你定义一个变量时,要为其分配内存空间,而该类(结构)定义还没有结束
所以无法确定其大小,也就无法分配内存空间,所以出错
而指针不同,大小固定,所以可以啊
其实引用也可以的
iamcaicainiao
2005-12-21
打赏
举报
回复
呵呵,这是规定阿。钱能的那本红皮的c++的书里有讲啊。结构中成员不能重复包含自身的。但是可以包含指向相同结构的指针。
OpenGL-自主高性能三维GIS平台架构与实现-第二季
根据使用目的不同,介绍多种优化方法 3 DEM图层的实现原理 1 4 DEM数据结构定义
struct
V3U3N4{float x, y, z;float u, v, w;byte nx,ny,nz,nw;}顶点数据的生成和...
C++
class
内定义
struct
class
CYuImageControl { DECLARE_DYNAMIC... //定义
struct
struct
YuMarkPoint { double x; double y; }; //使用
struct
std::vector m_vMarkPoints; } 如上,若
一个
struct
只供本类使用,那么
struct
和
class
异同
一图理解
struct
和
class
的异同 1 相同点 A
struct
和
class
是同一等级的,属于命名空间下 B 可以定义字段、属性、方法、构造器等 C 有默认的无参构造方法 2 不同点 A 定义语法关键字不同(
struct
class
) B
struct
是...
【C++】
struct
和
class
的区别
在C++中我们可以看到
struct
和
class
的区别并不是很大,两者之间有很大的相似性。那么为什么还要保留
struct
,这是因为C++是向下兼容的,因此C++中保留了很多C的东西。 一.首先看一下C中
struct
1.
struct
的定义 ...
c++
struct
与
class
在c++中,
struct
与
class
的区别其实不算特别大,两个关键词的用法在很多地方有相似之处。那为什么在c++中会有
struct
这个关键字呢? 先说结论: 主要原因是c++需要保留对c的兼容性,c中有
struct
,所以c++也保留。不光...
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章