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

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

關于更好的編程風格的建議

在這篇文章里我將談談各種層次的C++程序員經常問及的四個問題。例如我很驚訝地發現還有很多程序員沒有意識到標準頭文件擴展名.h的爭議,命名空間的恰當用法以及引用臨時對象的規則。這些問題及其它將在這里進行討論。

首先我們從解釋受非議的“XXX.h”頭文件名與現代、符合標準的“<XXX>”頭文件名記號之間的區別開始。接下來我們探索C++不為人知的角落,由于編譯器的局限性和關聯語言規則某些隱蔽的自然特性迷惑了許多程序員,比如逗號分隔表達式的意義與引用型變量的規則。最后我們將學習如何在程序啟動前啟動一個函數。

 

話題1“iostream.h” or “iostream”?

C++程序員還在使用“iostream.h”代替新的符合標準的“iostream”庫。兩者有什么區別呢?首先,標準頭文件“.h”擴展名在五年前就倍受爭議。在新代碼中使用有爭議的(過時的)特性永遠都不是一個好主意。從本質上看,“iostream”包括一系列支持窄字符與寬字符的模板化(templatized I/O輸入輸出類,而相反地,“iostream.h”只支持字符流。第三,iostream接口的標準C++規范在許多細節方面進行了變動。因此,“iostream”的接口與實現同那些“iostream.h”是有區別的。最后,“iostream”是在std命名空間中定義的而“iostream.h”則是全局的。

由于這些本質方面的不同,不能在同一程序中混合使用這兩種庫。作為一個規則,應盡量使用“iostream”,除非你要處理的是只能與“iostream.h”兼容的遺留代碼。

 

話題2:將引用與右值綁定

右值和左值是C++編程的一個基本概念。本質上來講右值是一個不可能出現在等號左邊的表達式。相反,左值引用一個對象(廣義范圍上的),或者一塊可讀寫的內存。引用既可以指向右值也可以指向左值。然而,由于語言在處理右值上的限制,你也得在將引用指向右值是慎重考慮。

將引用與右值綁定像引用常量一樣也是被允許的。這條原則背后的原理是很顯而易見的:你無法改變右值,因為對常量的引用確保程序不會通過這個接口改變右值。下面的例子,f()函數包含一個對常整型變量的引用。

1 void f(const int & i);
2 
3 int main()
4 {
5 f(2); /* OK */
6 }

這段代碼將右值2”做為函數f()的一個參數。代碼運行時,C++將創建一個值為2的臨時整型變量并將其與引用類型i綁定。這個臨時對象與它的接口將在 f()運行期間一直存到直到函數f返回。函數f返回后它們立即被釋放。注意我們沒有將i聲明為常量類型,但是函數f仍有可能修改它的這個參數,這將引起異常。因此最好是將引用與常量類型綁定。

同樣的規則適用于自定義類型。只有一個臨時對象為常量時才可以與引用類型綁定。
struct A{};

1 void f(const A& a);
2 
3 int main()
4 {
5     f(A()); /* OK, binding a temporary A to a const reference*/
6 }

 

話題3:逗號表達式

逗號表達式是從C語言沿襲下來的。它就像你經常使用的for循環與while-loop循環一樣。但是這里面的語法規則遠不像看起來的那樣。首先,讓我們看看什么是逗號表達式。

一個表達式可以被逗號分隔為一個或若干個子表達式。例如:

1     if(++x, --y, cin.good()) /*three expressions*/

這條if語句被逗號分事為三個表達式。從C++的角度每個表達式都是合法的但是副作用產生了。整個逗號表達式的值是由最右邊的表達式決定的。于是只有con.good()的返回值是true時整個表達式的值才是true。這里有另一個關于逗號表達式的例子。

1 int j=10;
2 int i=0;
3 
4 while( ++i, --j)
5 {
6     /*..repeat as long as j is not 0*/
7 }

     

話題4:在程序啟動前調用函數

有些應用需要在主程序啟運前運行啟動函數。例如投票、支付和登錄函數必須在實際種程序啟動前運行。一個最簡單的實現方法就是在一個全局對象的構造函數里調用這些函數。因為全局對象在程序的最開頭被隱式的創建,這些函數就可以在main()函數之前得到運行。例如:

1 class Logger
2 {
3 public:
4     Logger()
5     {
6         activate_log();
7     }
8 };
9 
10 Logger log; /*global instance*/
11 
12 int main()
13 {
14     record * prec=read_log();
15     //.. application code
16 }

全局對象logmain()函數啟動之前被創建。在它的構造函數里,log調用了active_log()函數。于是,當main()函數啟動時,它可以從日志文件中讀取數據。

posted on 2008-09-17 11:03 肥仔 閱讀(189) 評論(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>
            999亚洲国产精| 在线中文字幕不卡| 亚洲人成7777| 一区二区三区自拍| 亚洲国产精品999| 原创国产精品91| 欧美视频在线一区二区三区| 欧美麻豆久久久久久中文| 欧美日本中文| 国产精品久久久久久久久久免费看 | 午夜精品一区二区三区电影天堂| 亚洲欧美激情一区二区| 久久精品30| 亚洲视频狠狠| 亚洲日本一区二区| 在线视频精品一| 午夜精品久久| 欧美激情视频给我| 亚洲图片在线| 久久久久久午夜| 欧美日韩在线综合| 国内激情久久| av成人动漫| 久久久综合香蕉尹人综合网| 91久久线看在观草草青青| 亚洲欧美激情精品一区二区| 欧美mv日韩mv亚洲| 久久国产色av| 日韩亚洲欧美成人一区| 久久精品成人一区二区三区蜜臀 | 狠狠色噜噜狠狠色综合久| 亚洲欧洲视频| 久久精品国产一区二区电影| 亚洲国产高清一区| 欧美成人免费全部| 亚洲欧美日韩在线| 欧美日韩国产成人在线免费| 激情偷拍久久| 久久成人羞羞网站| 一区二区三区日韩欧美精品| 男女视频一区二区| 久久av免费一区| 欧美视频在线一区| 99re66热这里只有精品4| 榴莲视频成人在线观看| 亚洲一区久久久| 欧美日韩国产免费| 亚洲免费高清| 亚洲国产欧美精品| 裸体女人亚洲精品一区| 在线观看国产日韩| 老司机午夜精品视频在线观看| 亚洲一区二区三区在线| 在线欧美亚洲| 久久躁日日躁aaaaxxxx| 午夜欧美不卡精品aaaaa| 国产精品人人做人人爽| 亚洲欧美国内爽妇网| 夜夜精品视频| 国产精品久久久久av免费| 一区二区国产在线观看| 亚洲每日在线| 欧美日韩精品一区二区在线播放| 亚洲精品婷婷| 日韩视频在线观看国产| 欧美视频一区在线观看| 亚洲欧美激情视频在线观看一区二区三区| 亚洲伦理自拍| 日韩视频一区二区在线观看| 国产一区二区三区日韩欧美| 亚洲国产另类久久精品| 亚洲欧美国产制服动漫| 国产精品一区二区三区观看| 欧美一区二区三区在线免费观看 | 亚洲欧美综合网| 国产精品毛片在线看| 亚洲欧美日韩在线| 久久精品日产第一区二区三区 | 另类国产ts人妖高潮视频| 亚洲高清在线| 亚洲国产精品毛片| 欧美午夜在线观看| 久久精品首页| 久久裸体艺术| 亚洲美女尤物影院| 亚洲少妇自拍| 黄色免费成人| 亚洲精品国产精品国自产在线| 欧美手机在线| 麻豆国产精品一区二区三区| 欧美精品999| 久久国产黑丝| 欧美高清在线视频| 欧美日韩一视频区二区| 欧美在线视频二区| 久热精品视频在线| 亚洲综合成人婷婷小说| 久久婷婷蜜乳一本欲蜜臀| 亚洲黄网站黄| 亚洲韩国一区二区三区| 国产精品欧美日韩一区二区| 美女视频一区免费观看| 欧美日韩三级| 欧美激情综合| 国产伦精品一区二区三区视频黑人| 久久午夜av| 欧美新色视频| 欧美激情精品久久久久久| 国产伦精品一区二区三区四区免费| 欧美成年网站| 国产一区二区三区久久| 这里只有精品丝袜| 亚洲免费播放| 玖玖国产精品视频| 久久成人亚洲| 国产精品久久久久毛片软件| 亚洲电影免费| 极品尤物av久久免费看 | 欧美一区国产一区| 欧美日韩成人| 亚洲国产第一| 欧美在线亚洲综合一区| 激情六月婷婷久久| 亚洲欧美成人在线| 亚洲天堂激情| 欧美成人午夜影院| 免费成人高清视频| 国产一区激情| 亚洲免费视频在线观看| 亚洲图片在区色| 欧美日韩情趣电影| 99视频一区| 亚洲一区二区三区在线看| 国产主播一区| 欧美成人精品一区二区三区| 国产日韩精品在线| 亚洲欧美日本在线| 欧美中在线观看| 国产亚洲视频在线| 亚洲一区二区网站| 欧美一区二区视频网站| 国产九九视频一区二区三区| 亚洲欧美在线x视频| 久久国产精品99精品国产| 国产一区二区中文| 久久久午夜精品| 亚洲第一天堂无码专区| 亚洲九九精品| 欧美日韩在线大尺度| 一区二区高清| 欧美专区一区二区三区| 国产又爽又黄的激情精品视频| 久久精品99无色码中文字幕| 国产在线精品成人一区二区三区 | 一区二区三区www| 香港成人在线视频| 国产一区清纯| 欧美极品一区| 亚洲专区国产精品| 快射av在线播放一区| 亚洲日韩欧美视频一区| 欧美日韩一区二区三区在线视频 | 看片网站欧美日韩| 亚洲国产视频一区| 欧美日韩一视频区二区| 小黄鸭精品aⅴ导航网站入口| 巨乳诱惑日韩免费av| 99一区二区| 国产一区二区三区丝袜| 欧美成人精品三级在线观看| 宅男66日本亚洲欧美视频| 一区二区激情小说| 国产一区二区三区无遮挡| 免费在线国产精品| 一区二区三区久久网| 久久中文久久字幕| 亚洲天堂久久| 91久久在线| 国产日韩欧美日韩| 欧美精品国产一区| 久久精品国产在热久久| 这里只有视频精品| 在线免费观看视频一区| 国产精品日产欧美久久久久| 免费日韩av| 久久成人免费网| 99re热精品| 欧美一区二区三区日韩视频| 久久久久国产精品厨房| 亚洲美女精品久久| 一区二区三区我不卡| 国产精品jvid在线观看蜜臀| 另类专区欧美制服同性| 欧美亚洲一区二区在线观看| 日韩视频久久| 亚洲国产美女| 亚洲人成网站在线观看播放| 久久久久在线观看| 欧美在线观看视频一区二区三区| 一区二区久久久久|