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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

More Effective C++:指針與引用的區別

  指針與引用看上去完全不同(指針用操作符’*’和’->’,引用使用操作符’.’),但是它們似乎有相同的功能。指針與引用都是讓你間接引用其他對象。你如何決定在什么時候使用指針,在什么時候使用引用呢?

  首先,要認識到在任何情況下都不能用指向空值的引用。一個引用必須總是指向某些對象。因此如果你使用一個變量并讓它指向一個對象,但是該變量在某些時候也可能不指向任何對象,這時你應該把變量聲明為指針,因為這樣你可以賦空值給該變量。相反,如果變量肯定指向一個對象,例如你的設計不允許變量為空,這時你就可以把變量聲明為引用。

  “但是,請等一下”,你懷疑地問,“這樣的代碼會產生什么樣的后果?”
char *pc = 0// 設置指針為空值
char& rc = *pc; // 讓引用指向空值 
  這是非常有害的,毫無疑問。結果將是不確定的(編譯器能產生一些輸出,導致任何事情都有可能發生),應該躲開寫出這樣代碼的人除非他們同意改正錯誤。如果你擔心這樣的代碼會出現在你的軟件里,那么你最好完全避免使用引用,要不然就去讓更優秀的程序員去做。我們以后將忽略一個引用指向空值的可能性。

  因為引用肯定會指向一個對象,在C里,引用應被初始化。
string& rs; // 錯誤,引用必須被初始化
string s("xyzzy");
string& rs = s; // 正確,rs指向s 
  指針沒有這樣的限制。

string *ps; // 未初始化的指針
// 合法但危險 

  不存在指向空值的引用這個事實意味著使用引用的代碼效率比使用指針的要高。因為在使用引用之前不需要測試它的合法性。
void printDouble(const double& rd)
{
cout 
<< rd; // 不需要測試rd,它
}
 // 肯定指向一個double值 
  相反,指針則應該總是被測試,防止其為空:

void printDouble(const double *pd)
{
if (pd) // 檢查是否為NULL
cout << *pd;
}

}
 
  指針與引用的另一個重要的不同是指針可以被重新賦值以指向另一個不同的對象。但是引用則總是指向在初始化時被指定的對象,以后不能改變。
string s1("Nancy");
string s2("Clancy");
string& rs = s1; // rs 引用 s1
string *ps = &s1; // ps 指向 s1
rs = s2; // rs 仍舊引用s1,
// 但是 s1的值現在是
// "Clancy"
ps = &s2; // ps 現在指向 s2;
// s1 沒有改變 
  總的來說,在以下情況下你應該使用指針,一是你考慮到存在不指向任何對象的可能(在這種情況下,你能夠設置指針為空),二是你需要能夠在不同的時刻指向不同的對象(在這種情況下,你能改變指針的指向)。如果總是指向一個對象并且一旦指向一個對象后就不會改變指向,那么你應該使用引用。

  還有一種情況,就是當你重載某個操作符時,你應該使用引用。最普通的例子是操作符[]。這個操作符典型的用法是返回一個目標對象,其能被賦值。

vector v(
10); // 建立整形向量(vector),大小為10;
// 向量是一個在標準C庫中的一個模板
v[5= 10// 這個被賦值的目標對象就是操作符[]返回的值 
  如果操作符[]返回一個指針,那么后一個語句就得這樣寫:

*v[5= 10
  但是這樣會使得v看上去象是一個向量指針。因此你會選擇讓操作符返回一個引用。

  當你知道你必須指向一個對象并且不想改變其指向時,或者在重載操作符并為防止不必要的語義誤解時,你不應該使用指針。而在除此之外的其他情況下,則應使用指針。

posted on 2008-09-02 17:35 isabc 閱讀(904) 評論(1)  編輯 收藏 引用 所屬分類: C++基礎

評論

# re: More Effective C++:指針與引用的區別 2009-07-16 10:26 zhangningbingyu

這篇文章對我很有用,
謝謝你的講解!  回復  更多評論   

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            噜噜噜躁狠狠躁狠狠精品视频| 久久亚洲图片| 亚洲作爱视频| 欧美日韩中文字幕综合视频 | 亚洲综合精品| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲伦伦在线| 欧美三级特黄| 久久爱www| 久久久噜噜噜| 99国产精品视频免费观看一公开| 亚洲人精品午夜在线观看| 欧美日本韩国| 久久激情婷婷| 欧美不卡激情三级在线观看| 99re6这里只有精品| 亚洲五月六月| 在线观看国产一区二区| 亚洲高清不卡一区| 国产精品免费一区二区三区在线观看| 欧美一区二区三区喷汁尤物| 久久精品亚洲国产奇米99| 亚洲精品在线观看免费| 亚洲一区二区三区四区五区黄| 国产亚洲激情视频在线| 亚洲国产日韩综合一区| 国产精品视频yy9299一区| 你懂的视频一区二区| 欧美日韩国产一区二区| 久久一区亚洲| 欧美视频在线一区| 欧美mv日韩mv国产网站| 欧美小视频在线| 欧美mv日韩mv亚洲| 国产精品视频内| 亚洲第一狼人社区| 国产曰批免费观看久久久| 亚洲国产一区二区视频| 国产一区视频网站| 亚洲视频一区二区| 亚洲精品国产日韩| 欧美在现视频| 性伦欧美刺激片在线观看| 欧美精品激情blacked18| 久久久久成人精品| 国产精品久久久99| 亚洲精品国产精品久久清纯直播 | 国产日韩精品久久| 日韩视频免费大全中文字幕| 精品9999| 久久成人精品无人区| 午夜精品久久| 欧美日韩亚洲一区二区三区| 欧美风情在线观看| 精品1区2区3区4区| 欧美影视一区| 久久久久久网址| 国产伦精品一区二区三区高清版 | 亚洲欧美国产不卡| 亚洲欧美在线磁力| 欧美性猛交视频| 99国产精品视频免费观看| 亚洲精选国产| 欧美精品福利视频| 亚洲日本中文字幕区| 91久久在线播放| 美日韩精品免费| 欧美护士18xxxxhd| 亚洲区一区二区三区| 久久在线免费观看视频| 免费观看一级特黄欧美大片| 好看不卡的中文字幕| 久久精品国产亚洲aⅴ| 久久天堂成人| 一区二区三区在线不卡| 久久久久在线| 亚洲高清色综合| 一区二区三区四区精品| 欧美日韩在线视频观看| 亚洲一区视频在线观看视频| 午夜精品国产精品大乳美女| 国产精品一区毛片| 欧美在线免费一级片| 欧美jjzz| 中国女人久久久| 国产精品嫩草影院av蜜臀| 欧美一区二区三区在线视频| 久久精品一区蜜桃臀影院| 在线免费观看一区二区三区| 裸体一区二区| 一本一本久久a久久精品牛牛影视| 亚洲男人第一网站| 在线观看日韩精品| 欧美日韩视频在线一区二区观看视频| 亚洲一区二三| 牛牛影视久久网| 亚洲午夜精品久久久久久浪潮| 国产毛片一区二区| 蜜桃久久精品一区二区| 在线视频精品一| 久久亚洲精品视频| 一区二区日韩| 国内自拍视频一区二区三区| 欧美第十八页| 欧美呦呦网站| 亚洲麻豆一区| 久久综合网络一区二区| 日韩亚洲成人av在线| 国产午夜精品麻豆| 欧美精品一区二区三区视频| 欧美一区91| 一本综合久久| 亚洲第一在线综合网站| 久久本道综合色狠狠五月| 亚洲精选久久| 一区二区三区我不卡| 国产精品久久久久久亚洲调教| 老司机久久99久久精品播放免费 | 久久成人亚洲| 正在播放亚洲| 亚洲毛片网站| **欧美日韩vr在线| 国产午夜精品在线观看| 欧美四级电影网站| 欧美黄在线观看| 老司机精品久久| 欧美一区午夜视频在线观看| 一区二区三区欧美亚洲| 亚洲国产高清自拍| 久久一区二区三区四区| 久久gogo国模裸体人体| 亚洲一区二区三区四区在线观看 | 欧美午夜大胆人体| 欧美韩国在线| 欧美高潮视频| 牛牛国产精品| 蜜臀av在线播放一区二区三区| 欧美一级久久久| 欧美一级一区| 欧美一区午夜精品| 午夜在线视频一区二区区别| 亚洲与欧洲av电影| 亚洲女ⅴideoshd黑人| 中国女人久久久| 亚洲午夜在线| 亚洲在线第一页| 午夜电影亚洲| 久久国产精品99国产精| 午夜精品视频在线| 欧美一区二区视频在线观看| 亚洲欧美综合精品久久成人| 午夜日韩福利| 久久国产乱子精品免费女 | 亚洲日本中文字幕| 亚洲精品资源| 亚洲深夜激情| 欧美一区二区精品| 久久久综合免费视频| 久久亚洲私人国产精品va媚药| 麻豆精品视频在线观看| 欧美激情欧美激情在线五月| 欧美日本亚洲视频| 国产精品久久久久久五月尺| 国产欧美欧美| 亚洲高清自拍| 一区二区不卡在线视频 午夜欧美不卡在 | 91久久午夜| 一区二区三区四区五区视频| 亚洲欧美日本视频在线观看| 久久成人这里只有精品| 欧美a级片网站| 日韩亚洲欧美一区| 欧美一区二区三区啪啪| 美女啪啪无遮挡免费久久网站| 欧美精品三级在线观看| 国产精品都在这里| 韩国美女久久| 一区二区三区av| 久久精品女人| 亚洲精品欧美一区二区三区| 亚洲免费视频一区二区| 另类图片综合电影| 国产精品久久一卡二卡| 亚洲大胆美女视频| 亚洲深夜福利视频| 狂野欧美激情性xxxx欧美| 日韩视频免费在线观看| 欧美在线视频一区二区三区| 欧美福利影院| 精品99一区二区| 亚洲女人天堂av| 亚洲国产精品久久久久| 香蕉尹人综合在线观看| 欧美激情五月| 在线观看视频免费一区二区三区| 亚洲永久免费视频| 亚洲国内自拍| 久久香蕉国产线看观看网| 国产免费亚洲高清| 正在播放亚洲一区|