青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品


“void ClearList(LNode * & HL)”

仔細看一下這種聲明方式,確實有點讓人迷惑。
下面以
void func1( MYCLASS *&pBuildingElement );
為例來說明這個問題。在某種意義上,"*"和"&"是意思相對的兩個東西,把它們放在一起有什么意義呢?。為了理解指針的這種做法,我們先復習一下C/C++編程中無所不在的指針概念。我們都知道MYCLASS*的意思:指向某個對象的指針,此對象的類型為MYCLASS。 Void func1(MYCLASS *pMyClass);

// 例如: MYCLASS* p = new MYCLASS;
func1(p);
上面這段代碼的這種處理方法想必誰都用過,創建一個MYCLASS對象,然后將它傳入func1函數?,F在假設此函數要修改pMyClass: void func1(MYCLASS *pMyClass)
{
DoSomething(pMyClass);
pMyClass = // 其它對象的指針
}

  第二條語句在函數過程中只修改了pMyClass的值。并沒有修改調用者的變量p的值。如果p指向某個位于地址0x008a00的對象,當func1返回時,它仍然指向這個特定的對象。(除非func1有bug將堆弄亂了,完全有這種可能。)

  現在假設你想要在func1中修改p的值。這是你的權利。調用者傳入一個指針,然后函數給這個指針賦值。以往一般都是傳雙指針,即指針的指針,例如,CMyClass**。


MYCLASS* p = NULL;
func1(&p);

void func1(MYCLASS** pMyClass);
{
*pMyClass = new MYCLASS;
……
}


  調用func1之后,p指向新的對象。在COM編程中,你到處都會碰到這樣的用法--例如在查詢對象接口的QueryInterface函數中:


interface ISomeInterface {
HRESULT QueryInterface(IID &iid, void** ppvObj);
……
};
LPSOMEINTERFACE p=NULL;
pOb->QueryInterface(IID_SOMEINTERFACE, &p);

  此處,p是SOMEINTERFACE類型的指針,所以&p便是指針的指針,在QueryInterface返回的時候,如果調用成功,則變量p包含一個指向新的接口的指針。

  如果你理解指針的指針,那么你肯定就理解指針引用,因為它們完全是一回事。如果你象下面這樣聲明函數:


void func1(MYCLASS *&pMyClass);
{
pMyClass = new MYCLASS;
……
}

  其實,它和前面所講得指針的指針例子是一碼事,只是語法有所不同。傳遞的時候不用傳p的地址&p,而是直接傳p本身:

  MYCLASS* p = NULL;
  func1(p);

  在調用之后,p指向一個新的對象。一般來講,引用的原理或多或少就象一個指針,從語法上看它就是一個普通變量。所以只要你碰到*&,就應該想到**。也就是說這個函數修改或可能修改調用者的指針,而調用者象普通變量一樣傳遞這個指針,不使用地址操作符&。

  至于說什么場合要使用這種方法,我會說,極少。MFC在其集合類中用到了它--例如,CObList,它是一個Cobjects指針列表。



Class CObList : public Cobject {
……

// 獲取/修改指定位置的元素
Cobject*& GetAt(POSITION position);
Cobject* GetAt(POSITION position) const;
};


  這里有兩個GetAt函數,功能都是獲取給定位置的元素。區別何在呢?

  區別在于一個讓你修改列表中的對象,另一個則不行。所以如果你寫成下面這樣: Cobject* pObj = mylist.GetAt(pos);

  則pObj是列表中某個對象的指針,如果接著改變pObj的值: pObj = pSomeOtherObj;

  這并改變不了在位置pos處的對象地址,而僅僅是改變了變量pObj。但是,如果你寫成下面這樣: Cobject*& rpObj = mylist.GetAt(pos);

  現在,rpObj是引用一個列表中的對象的指針,所以當改變rpObj時,也會改變列表中位置pos處的對象地址--換句話說,替代了這個對象。這就是為什么CObList會有兩個GetAt函數的緣故。一個可以修改指針的值,另一個則不能。注意我在此說的是指針,不是對象本身。這兩個函數都可以修改對象,但只有*&版本可以替代對象。

  在C/C++中引用是很重要的,同時也是高效的處理手段。所以要想成為C/C++高手,對引用的概念沒有透徹的理解和熟練的應用是不行的。
Posted on 2005-12-15 13:16 艾凡赫 閱讀(198) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日本中文字幕| 久久精品国产v日韩v亚洲| 欧美国产91| 99这里只有精品| 一个色综合av| 国产一区二区三区av电影 | 亚洲精品乱码| 99re6这里只有精品| 国产精品日韩欧美大师| 久久亚洲精品伦理| 欧美激情在线观看| 一区二区免费看| 99国产精品久久久久老师| 国产九九精品| 亚洲第一视频| 国产精品久久97| 欧美freesex8一10精品| 欧美精品久久一区二区| 欧美中文字幕第一页| 久久久综合精品| 亚洲欧美另类综合偷拍| 久久视频在线看| 亚洲欧美大片| 久久深夜福利| 欧美伊人久久久久久午夜久久久久 | 亚洲国产另类久久久精品极度| 日韩天堂在线观看| 精品成人在线视频| 亚洲视频久久| 亚洲美女av黄| 久久久国产亚洲精品| 亚洲欧美日韩国产成人| 欧美国产精品v| 久久天堂成人| 国产片一区二区| 一本到高清视频免费精品| 亚洲第一色在线| 久久se精品一区二区| 亚洲视频专区在线| 欧美福利一区二区三区| 老牛影视一区二区三区| 国产精自产拍久久久久久蜜| 日韩网站免费观看| 亚洲精品日韩在线| 久久综合九九| 欧美成人午夜| 伊人成综合网伊人222| 亚洲综合精品| 午夜伦理片一区| 欧美视频专区一二在线观看| 亚洲激情欧美激情| 亚洲开发第一视频在线播放| 久久久国产精品一区二区中文| 欧美一区二区三区视频| 国产精品久久波多野结衣| 一本色道久久综合一区 | 欧美日韩综合视频网址| 亚洲人久久久| 日韩一级在线| 欧美精品一区二区三区久久久竹菊| 免费人成网站在线观看欧美高清| 国产一区白浆| 久久久久se| 欧美成熟视频| 亚洲美女诱惑| 欧美黄在线观看| 亚洲欧洲另类| 亚洲综合成人在线| 国产精品一区免费视频| 亚洲在线一区| 久久久99爱| 亚洲激情啪啪| 欧美日韩免费| 亚洲欧美日韩在线| 国产亚洲欧美另类中文| 欧美一区二区在线免费播放| 国产精品午夜久久| 久久激情综合| 欧美激情第三页| 99天天综合性| 国产欧美精品在线播放| 欧美在线观看日本一区| 欧美成人一区在线| 亚洲一区欧美| 在线成人av网站| 欧美激情中文不卡| 午夜国产精品视频| 亚洲第一天堂无码专区| 亚洲永久免费av| 激情久久久久久久| 欧美日本一区二区三区| 校园春色综合网| 欧美激情精品久久久久久蜜臀 | 国产精品成人观看视频国产奇米| 欧美亚洲专区| 亚洲精品乱码久久久久久蜜桃91 | 亚洲成人在线| 国产精品免费网站| 麻豆国产精品一区二区三区| 亚洲美女中文字幕| 久久综合久久美利坚合众国| 一个色综合导航| 红桃视频国产精品| 国产精品久久久久久av福利软件| 久久躁日日躁aaaaxxxx| 亚洲视频中文| 亚洲高清视频中文字幕| 久久精品中文| 亚洲一区综合| 一本色道久久综合亚洲精品小说 | 亚洲欧洲一区二区三区久久| 久久gogo国模啪啪人体图| 亚洲日本黄色| 精久久久久久| 国产情人综合久久777777| 欧美黄色小视频| 久久阴道视频| 久久国产综合精品| 亚洲专区在线视频| 一本色道久久综合狠狠躁篇的优点 | 国产日韩精品在线观看| 欧美区二区三区| 麻豆精品一区二区综合av| 欧美一区二区三区精品电影| 亚洲视频1区| 一区二区三区国产| 亚洲精品久久7777| 亚洲激情午夜| 欧美激情亚洲激情| 欧美国产精品劲爆| 欧美激情视频一区二区三区不卡| 久久久久久久久一区二区| 亚洲欧美亚洲| 亚洲综合成人在线| 亚洲一区二区av电影| 一区二区欧美日韩| 中文亚洲视频在线| 亚洲一区二区三区在线看| 国产精品99久久久久久有的能看| 亚洲毛片在线看| 99国产精品国产精品毛片| 黄色综合网站| 欧美成人免费观看| 一本色道久久综合狠狠躁篇的优点| 亚洲人成啪啪网站| 一本一本久久| 亚洲一级黄色| 欧美一级久久| 久久夜色精品亚洲噜噜国产mv| 久久天天躁夜夜躁狠狠躁2022| 久久久在线视频| 欧美mv日韩mv亚洲| 欧美日韩美女在线| 国产伦精品一区二区| 狠狠干综合网| 亚洲精品日韩综合观看成人91| 亚洲日本久久| 亚洲欧美综合v| 久久频这里精品99香蕉| 欧美激情欧美狂野欧美精品| 亚洲欧洲一区二区在线播放| 亚洲网站啪啪| 久久精品国产欧美激情| 欧美激情视频给我| 国产精品久久一区主播| 狠狠色噜噜狠狠色综合久| 亚洲精品女人| 欧美一区二区三区视频| 欧美华人在线视频| 亚洲图色在线| 欧美aⅴ一区二区三区视频| 国产精品白丝av嫩草影院 | 欧美jizz19性欧美| 国产精品va| 亚洲欧洲另类国产综合| 亚洲综合精品四区| 欧美成人影音| 亚洲在线播放| 欧美精品1区| 狠狠色综合日日| 亚洲曰本av电影| 亚洲国产日韩欧美综合久久| 亚洲欧美激情视频| 欧美国产日本| 激情小说亚洲一区| 亚洲天堂男人| 亚洲国产精品成人久久综合一区| 亚洲一区三区在线观看| 欧美国产乱视频| 在线成人欧美| 久久精品视频在线免费观看| 日韩亚洲一区在线播放| 免费不卡在线观看av| 狠狠色狠狠色综合人人| 亚洲欧美国产77777| 亚洲国产高清在线观看视频| 久久aⅴ国产欧美74aaa| 国产精品视频九色porn| 一区二区三区欧美在线| 亚洲高清视频在线|