• 全部
  • 问答

请教一个菜鸟问题:Rose中如何建立struct类型

mis98ZB 日电卓越软件科技(北京)有限公司 开发总监  2002-12-28 06:57:48
Rose中如何才能建立一个结构体类型呢?
可以把类的数据成员的type改为一个结构体名,
但是在什么地方可以定义这个结构体呢?
555555…………烦死人了,
请各位老大指点一下!
...全文
109 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mis98ZB 2002-12-30
嗯,
谢谢bilbo0214(bilbo)的热心指导,
给分了。
回复
mis98ZB 2002-12-29
唔,
如果stA和clsA有相同的数据成员,
那么sizeof(stA)和sizeof(clsA)是一样大小的么?

还有就是如果遇到编译器启用了双字节对齐或者是四字节对齐的优化怎么办?
啊~~~~好麻烦……
回复
bilbo0214 2002-12-29
可是在设计的时候接口得定下来啊……
我要对一个连续区域的某些位置进行读写,
但是又不想设置一堆偏移常量和长度常量,
所以干脆做成结构体,
用强制类型转换的方法来读写这个区域。
---------------------------------------------

我知道了,其实你完全可以不必使用结构体,因为C++中完全可以用一个Class来代替一个结构体,而且封装的很好,特别是你这中完全是为了操作某个区域的问题,封装成Class将提高代码质量,这样你只需描述类与类之间的关系.



回复
bilbo0214 2002-12-29
如果类中没有方法,那么在编译处理以后,和结构的大小是相同的.

还有就是如果遇到编译器启用了双字节对齐或者是四字节对齐的优化怎么办?
------------------------------------------------------------
这个问题偶没有遇到过,但是编译优化将与低层平台有很大关系,这要参考你的平台是什么样的了.
这么说也仅仅是个猜想,没有实践过,不敢妄言
回复
mis98ZB 2002-12-28
还有就是这个结构体只是一个纯粹的类型而已,
是绝对不会有实体的。

原因是这样的:
我要对一个连续区域的某些位置进行读写,
但是又不想设置一堆偏移常量和长度常量,
所以干脆做成结构体,
用强制类型转换的方法来读写这个区域。
回复
mis98ZB 2002-12-28
可是在设计的时候接口得定下来啊……

以前也从来没有想到过这种问题,
只是这几天偶尔有点闲,
所以就打算把设计做细一点,
没想到就遇上了这档子事……
回复
stonespace 2002-12-28
struct是兼容C才保留的,在c++中你可以用class代替struct,在效率方面不会有区别。
回复
bilbo0214 2002-12-28
实际上我觉得使用Rose的目的是分析和设计,
具体的代码没有太大必要写得太细,而且一直觉得rose生成的代码注释太多,是它自己用来识别的,对程序员没多大用处.
回复
bilbo0214 2002-12-28
I am trying to find a solution.
直接定义是不太可能了,你可以将一个结构看成一个特殊的对象,实际上C++语言设计的时候就是将结果看成一个特殊的对象,然后使用对象之间的关系表示包含这个结构的对象.
我现在暂时只能想到这个方法.
回复
相关推荐
发帖
研发管理
创建于2007-08-27

1206

社区成员

软件工程/管理 管理版
申请成为版主
帖子事件
创建了帖子
2002-12-28 06:57
社区公告
暂无公告