找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: jzj2000

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-10-27 22:56:41 | 显示全部楼层
我不知道AutoDesk提供的这些函数是不是经过COM包装的,如果仅仅从表面来看,那就仅仅是一个C++的问题而已,仅仅是为了节省空间和时间,提高效率。下面举个例子来解释这个指针引用的问题:
    比如有这样一个函数:void func(AcDbObject *&pObj),obj是一个指针的引用,而引用又称作是别名。

    AcDbObject *pA;
        func(pA);

        在执行func函数时,并没有实实在在的分配一个临时指针变量pObj(注意,这是关键!),而是给指针变量pA声明了一个引用(别名)pObj,也就是说此时指针变量pA所“占”的内存空间现在有两个名称pA和pObj(我们知道C++的函数调用是传值调用!),此后,对pObj值(也就是pObj所占内存空间中保存的地址值)的修改就是对pA值的修改。
    从上面的叙述中我们应该可以看出,指针引用的关键其实就在于:函数中没有实际的给pObj分配一块儿内存,这就是引用的好处。如果不用引用,那么在函数调用过程中,就要给pObj分配一块儿内存,然后在函数即将结束之前回收这块儿内存。这样就会有效率上的损失,虽然分配给指针变量的内存都不大,只有四字节(32位操作系统)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-11 17:46:02 | 显示全部楼层
最初由 jzj2000 发布
[B]谢谢liron!
可惜回答了一半。其使用场合仍有点费解,仍然引用Arx2002例:
partopen.cpp:
AcDbLayerTableRecord* pLayer;  //定义指针
~~~~~~~~~~~~~~~~~~~~
... ...

if (acdbOpenAcDbObject((AcDbObject*&)... [/B]


//下面是声明:
class CBase
{
public:
        CBase(){};
};
class CSub : public CBase
{
public:
        CSub(){};
};
void fun1(CBase &b){}
void fun2(CBase *&pb){}


//下面的用法是正确的
        CSub s;
        fun1(s);
        CSub *ps;
        fun2((CBase *&)ps);

//但是这样是不正确的
           fun2(ps);

//因为 CSub *     不是  CBase *    的子类
//而是 CSub     才是  CBase     的子类

以上解释了为了么要强制转换
但是,为什么这些函数的参数要用 指针的引用 而不直接用 指针 呢?原因是这里要在这些函数里面给指针分配内存,如果不这样是办不到的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-3-18 14:13:12 | 显示全部楼层

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

使用道具 举报

发表于 2005-4-5 07:52:28 | 显示全部楼层
正在被这个问题困惑,现在好像稍微明白了一点点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-5-24 10:54:32 | 显示全部楼层
被这个问题困惑了好久,现在好象有点懂了,看一位高人的解释,有一种理解!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-2 18:36:27 | 显示全部楼层
非常好,解决了很多初学者的大问题,尤其是对VC还不是很熟的朋友。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-10 13:04 , Processed in 0.405577 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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