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

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>
            国产精品免费区二区三区观看| 中国女人久久久| 亚洲黄色毛片| 1000部精品久久久久久久久| 亚洲国产精品一区制服丝袜 | 久久亚洲不卡| 欧美国产亚洲另类动漫| 欧美激情综合| 在线一区亚洲| 久久精品水蜜桃av综合天堂| 欧美国产另类| 国产伦精品一区二区三区免费迷 | 欧美夜福利tv在线| 快射av在线播放一区| 亚洲人成77777在线观看网| 日韩视频免费观看高清在线视频| 亚洲在线观看视频网站| 久久久免费精品视频| 欧美日韩午夜精品| 国内一区二区三区在线视频| 在线综合亚洲| 欧美韩日精品| 欧美在线观看一区| 国产精品久久久久久久电影| 亚洲福利视频在线| 欧美一级视频一区二区| 亚洲黄色精品| 久久久国产一区二区三区| 国产精品都在这里| 一区二区免费在线播放| 亚洲高清视频一区二区| 久久精品国产清高在天天线| 国产精品美女视频网站| 一区二区日韩精品| 免费看黄裸体一级大秀欧美| 亚洲男人av电影| 久久久久久999| 欧美亚洲免费电影| 欧美日韩a区| 亚洲国产日韩欧美在线动漫| 久久er精品视频| 洋洋av久久久久久久一区| 久久精品三级| 国产日韩av一区二区| 亚洲综合日韩在线| 亚洲伦理久久| 欧美激情视频一区二区三区免费| 黄色在线一区| 卡一卡二国产精品| 久久精品噜噜噜成人av农村| 国产一区二区黄| 久久久国产成人精品| 午夜精品在线| 国产主播精品在线| 久久久91精品| 久久精品人人做人人综合| 国产一区二区精品丝袜| 久久久久国产免费免费| 久久精品二区| 在线观看中文字幕亚洲| 欧美寡妇偷汉性猛交| 免费在线亚洲| 一区二区三区成人| 一区二区三区日韩| 国产精品一区二区在线观看网站 | 亚洲欧美一区二区三区极速播放 | 亚洲一区二区在线免费观看视频| 国产精品v一区二区三区 | 久久精品在线| 久久aⅴ国产欧美74aaa| 在线日韩中文字幕| 亚洲激情视频| 欧美婷婷在线| 午夜欧美大尺度福利影院在线看 | 午夜久久福利| 欧美专区日韩专区| 在线电影一区| 亚洲乱亚洲高清| 国产精品久久久久久久久动漫| 新67194成人永久网站| 久久精品导航| 99re6热只有精品免费观看| 这里只有精品视频在线| 国产一区二三区| 亚洲电影免费在线观看| 国产精品av久久久久久麻豆网| 欧美在线网站| 欧美成人精品高清在线播放| 亚洲在线观看免费视频| 久久精品毛片| 亚洲色图综合久久| 久久精品国产2020观看福利| 久久一区中文字幕| 欧美日本一道本在线视频| 欧美一区二区三区久久精品| 久久人人看视频| 亚洲影院色在线观看免费| 欧美一区二区三区视频免费| 亚洲精品国产无天堂网2021| 午夜精品久久久久| 日韩午夜三级在线| 欧美一区二区三区久久精品茉莉花 | 亚洲国产一区二区三区a毛片| 欧美精品乱人伦久久久久久 | 欧美美女喷水视频| 久久久噜噜噜久久久| 欧美日韩性生活视频| 久久这里有精品视频| 欧美性片在线观看| 亚洲激精日韩激精欧美精品| 国色天香一区二区| 亚洲影院在线| 亚洲一区二区三区视频播放| 免费成人你懂的| 久久久视频精品| 国产精品一二三四| 一本色道久久综合亚洲精品不卡| 亚洲大胆人体在线| 久久久xxx| 久久久久久综合网天天| 国产乱码精品一区二区三区不卡| 夜夜嗨av一区二区三区网页| 亚洲精品乱码视频| 麻豆久久久9性大片| 老色鬼久久亚洲一区二区| 国产主播精品在线| 欧美在线免费观看亚洲| 欧美一级在线视频| 国产精品初高中精品久久| 亚洲精品资源美女情侣酒店| 亚洲肉体裸体xxxx137| 久久五月婷婷丁香社区| 久久久久久亚洲精品杨幂换脸| 国产欧美韩日| 亚洲欧美中文字幕| 欧美亚洲日本一区| 国产日韩一区二区三区| 午夜精品久久久久久久白皮肤| 亚洲欧美激情精品一区二区| 国产精品激情偷乱一区二区∴| 亚洲日韩第九十九页| 国产精品网站在线| 午夜欧美不卡精品aaaaa| 国产欧美一区二区三区在线老狼 | 亚洲手机视频| 最新日韩av| 久久久久在线观看| 老司机成人网| 亚洲激情av| 午夜在线一区二区| 久久久国产视频91| 136国产福利精品导航| 欧美搞黄网站| 国产精品99久久久久久久vr| 久久精品国产综合精品| 在线免费高清一区二区三区| 欧美77777| 亚洲天堂免费观看| 久久亚洲欧美| 日韩一区二区免费高清| 国产精品午夜av在线| 欧美专区在线播放| 91久久精品国产91性色tv| 亚洲无毛电影| 国产在线观看一区| 欧美精品在线视频观看| 亚洲免费一在线| 欧美激情一二区| 欧美在线电影| 日韩视频中午一区| 国产一区二区久久精品| 欧美日韩视频第一区| 久久久久久久999| 日韩午夜精品| 欧美成人午夜激情视频| 亚洲欧美日韩视频二区| 亚洲国产成人久久综合一区| 欧美午夜在线观看| 久久综合狠狠| 亚洲欧美精品在线观看| 亚洲黄色成人网| 久久久久看片| 亚洲欧美欧美一区二区三区| 最新日韩在线| 国语精品一区| 国产精品毛片大码女人| 欧美成人精品不卡视频在线观看| 亚洲自拍高清| 久久夜色精品亚洲噜噜国产mv| 一区二区三区色| 亚洲国产成人av好男人在线观看| 国产精品国产亚洲精品看不卡15| 免费不卡在线视频| 欧美在线视频在线播放完整版免费观看| 亚洲国产毛片完整版| 玖玖综合伊人| 国内精品伊人久久久久av一坑| 欧美日韩亚洲网| 美女主播精品视频一二三四| 久久精品国产免费观看|