找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: jzj2000

[求助]:参数表中*&的确切含义是什么?如何用?

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

使用道具 举报

发表于 2003-8-9 09:05:04 | 显示全部楼层
如果是一个普通对象,则其指针或引用类型均具有多态性。试用例子来说明,baseClass是基类,inherClass是子类。则传递指针的环境下,以baseClass*或baseClass&为参数的函数,可以将inherClass*或inherClass&的对象传入。但是对于baseClass*&为参数的函数,则不能进行inherClass*&的传入,原因很简单。因为baseClass*&的类型为指针的引用,即引用的将是一个指针,而不是具有虚函数的类型,因此必须进行转换。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-15 16:15:25 | 显示全部楼层

新的见解

其实我们用的arx类都是autocad公司给我们的对com封装过的类,
一般用*操作符确实是对自身指针的调用,而当对&的调用返回的却是类封装过的一个核心接口指针,以此来调用相关功能,只是猜测未证实。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-9-24 09:13:10 | 显示全部楼层
指针和引用都是比较费解的东东,看各位大虾的帖子让我有了新的理解!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2003-10-29 15:46:34 | 显示全部楼层
应该到从C++的参考书中找,不才以为是这样的:
1。从autocad的数据库database中引用常驻的对象地址给调用者,这是不能释放的,否则就造成autoCAD死机!
2。由autoCAD的数据库中的对象拷贝一份到堆中,这是需要调用者释放的。
3。最主要的原因是需要由AutoCAD给你一个指针,否则就需要用**才能返回指针给你用。
4。这种办法应该是autodesk公司的设计师们精心设计过的,应该必用**更加好!
其实在写程序的时候把它当成**处理就行了,总之是为了带回来一个指针。具体语法可参见C++之父写的有关c++编程的书。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-14 12:01:28 | 显示全部楼层
今天刚注册,才感觉相见恨晚啊!这里讨论的技术问题正是我所需要的!
谢谢大家了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-14 21:09:31 | 显示全部楼层
我认为C++提倡的并不是容易出错的指针风格,而是通过强的类型限定来避免出错,尤其是对于复杂系统,这种错误的代价非常高。ARX的体系由于历史原因,C的痕迹很多,这不是好的设计方法,也不是值得模仿的风格,尽管学习arx的人都在模仿它。
如果一个函数返回一个内部指针,而不要delete,使用const。
const X* f() const;
如果需要调用方来delete,使用auto_ptr
auto_ptr<X*> f();
让auto_ptr在构析时自动delete。
使用参数作为返回数值的目的大多需要将返回值作为一个错误标记。
如:Acad::ErrorStatus f(auto_ptr<x*>&) throw(error);
而在C++中使用异常机制更好,用返回值表示结果时没有必要了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-6-25 10:30:36 | 显示全部楼层
我也遇到这个问题,上面各位能不能讲的更通俗一点啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-2 14:05:36 | 显示全部楼层
真要好好学习!不然都看不懂老大们在说什么玄机了。…………………………
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-19 22:19:46 | 显示全部楼层
指针的引用。传入的是指针作为参数,但是函数内部有可能改变指针所在的地址。即指针被换掉了,可能是换成某个已经存在的其他指针了。哈哈。估计不太好理解,用这种办法看看好不好理解一点
typedef pAcDbObject AcDbObject*;
acdbOpenAcDbObject(pAcDbObject& pLayer, id, AcDb::kForRead)
完全是一样的。当然搞不懂typedef 还是白搭。
这个知识点是C++的,与AutoCAD 无关。

替CAD公司的开发人员想想,如果不这样,还有什么办法可以得到一个已经存在的对象的指针呢。还有一个办法是把指针返回,当然有时候没有这样灵活了。
所有用这种办法处理是有他的道理的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 10:22 , Processed in 0.476228 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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