找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1299|回复: 23

[求助]:又有了一个新的问题

[复制链接]
发表于 2006-2-15 14:59:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
问题是这样的:
我从AcDbEntity自定义类EntA和EntB,
EntA中有一个数据m_dataA;
EntB中有一个数据m_dataB;
我现在要在EntA的intersectWith(const AcDbEntity* pEnt,
                                                AcDb::Intersect intType,
                                                AcGePoint3dArray& points,
                                                int thisGsMarker,
                                                int otherGsMarker) const
函数中:当A与B发生相交时,我要此函数中访问B中的数据:m_dataB,方法是通过函数入口参数:const AcDbEntity* pEnt来做的
,这样在头文件中只要包含了EntA的头文件就可以了。
但同时在EntB的intersectWith(const AcDbEntity* pEnt,
                                                AcDb::Intersect intType,
                                                AcGePoint3dArray& points,
                                                int thisGsMarker,
                                                int otherGsMarker) const
函数中我同样也要做这件事,这样在B的头文件中也要包含EntA的头文件。
编译是没问题的,但无法加载,问题我是明白的,加载A时要求必须先加载B,而加载B是要求必须先加载A,如此两个都不能加载。
那象这样一种要求还有什么好的思路可以实现呢?感谢大家帮我研究一下了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-15 16:26:44 | 显示全部楼层
你可以在EntB的头文件中声明一下EntA,不要包含头文件
或者如果头文件中用不到Ent,在 cpp 中声明EntA或包含头文件就可以了

直接写 class EntA;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-15 16:53:55 | 显示全部楼层
高手指点迷津,我试试看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-15 17:02:51 | 显示全部楼层
呵呵,我会飘起来的~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-15 17:15:41 | 显示全部楼层
好象不行啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-15 17:41:52 | 显示全部楼层
不应该呀,只是用的EntA和EntB的成员变量,应该不会有问题,
会不会是其它方面的问题??

再研究研究~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 11:49:58 | 显示全部楼层
为什么一定要把EntA 和 EntB放在不同的地方?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 12:18:19 | 显示全部楼层
他们是两个类,这样有利于模块化设计
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 12:46:47 | 显示全部楼层
我刚才还以为你分别放在不同的工程里呢。
你可以建一个继承于AcDbEntity的基类,在这个基类里有 m_data

或者在基类里建一个虚函数,得到你想要读取的值,在EntA EntB中改写它就好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 12:59:28 | 显示全部楼层
楼上的方法绝对是没问题的,只是我做自定义类均采用向导,
我可以采用向导以AcDbEntity为基类定义一个我的基类MyAcDbEntity;
但我以MyAcDbEntity为基类定义EntA,EntB类时却无法使用向导啊,
因为在向导的基类是找不到MyAcDbEntity的,那么我如果继续以AcDbEntity为基类
定义EntA和EntB,然后将所有的AcDbEntity改为MyAcDbEntity,这样做是否可行啊?我没尝试过,怕出问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 13:36:15 | 显示全部楼层
为什么一定要用向导?
你可以先把代码全部创建好,再把基类名改一下就好了

而且放心使用好了,绝对不会因为不用向导而出问题
我就是这么做的,现在都用得好好的,什么问题都没有
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 14:18:22 | 显示全部楼层
嗯,定义一个AcDbEntity的派生类做基类是个不错的主意
但是我还是觉得如果是独立的两个类的话,只是互相调用成员变量,也应该没有问题。
不知道具体情况是什么。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 15:36:26 | 显示全部楼层
C++类相互嵌套调用是没有问题的,但是这里的加载有个先后的顺序,所以会加载失败
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 16:57:24 | 显示全部楼层
对的,问题就在于有加载的先后顺序,我已按dafei81  
的方法从地层开始改写类了,工程量很大
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-16 17:00:15 | 显示全部楼层
哦,明白了。。呵呵
可怜的RedCAD,又得整顿工程。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 19:26 , Processed in 0.316966 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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