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

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 肥仔 閱讀(191) 評論(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>
            亚洲国产欧美日韩精品| 亚洲大胆在线| 最新日韩精品| 性色av一区二区三区| 亚洲欧美成人在线| 欧美91大片| 亚洲欧美激情一区| 欧美精品一区二区精品网| 欧美黄色网络| 黑丝一区二区三区| 亚洲免费中文| 欧美专区在线观看一区| 欧美午夜美女看片| 1024精品一区二区三区| 久久国产精品久久久久久电车| 日韩视频不卡| 欧美黑人国产人伦爽爽爽| 亚洲视频精选在线| 欧美激情视频网站| 久久爱www.| 国产精品久久久久久久免费软件| 日韩一级黄色片| 欧美激情国产日韩精品一区18| 欧美伦理在线观看| 久久精品国产久精国产思思| 亚洲一区二区三区四区五区黄| 一区二区三区国产| 亚洲精品一区在线观看| 欧美二区在线| 亚洲国产专区| 欧美福利电影在线观看| 免费视频一区| 亚洲欧洲精品一区| 亚洲电影视频在线| 欧美午夜剧场| 欧美夫妇交换俱乐部在线观看| 国产精品福利网| 欧美亚洲综合久久| 亚洲女人天堂成人av在线| 亚洲第一狼人社区| 亚洲一区二区动漫| 国产欧美精品xxxx另类| 久久国产精品久久久久久电车| 欧美黄色影院| 久久久青草青青国产亚洲免观| 欧美在线免费观看亚洲| 一本色道88久久加勒比精品 | 欧美亚洲成人网| 免费久久精品视频| 美日韩精品视频免费看| 亚洲三级免费观看| 日韩亚洲精品电影| 激情小说另类小说亚洲欧美| 欧美激情偷拍| 国产亚洲在线观看| 欧美11—12娇小xxxx| 国产精品免费视频观看| 亚洲黄色成人久久久| 韩日欧美一区二区三区| 日韩视频免费大全中文字幕| 亚洲欧美日韩中文视频| 欧美成人一二三| 久久只精品国产| 欧美高清在线播放| 久久综合国产精品| 国产精品一区二区你懂的| 久久久久综合网| 国产精品久久国产愉拍| 亚洲人成久久| 国产精品夜夜嗨| 久久人人97超碰人人澡爱香蕉| 国产精品va| 亚洲精品网址在线观看| 亚洲国产影院| 久久久人成影片一区二区三区观看| 亚洲国产一区二区三区青草影视 | 久久都是精品| 午夜一级久久| 欧美日韩亚洲综合在线| 欧美在线看片| 久久综合九色99| 国产精品99久久久久久久久| 你懂的国产精品永久在线| 久热国产精品视频| 欧美三级午夜理伦三级中视频| 久久狠狠一本精品综合网| 国产精品高潮在线| 一区二区三区蜜桃网| 国产一区二区高清视频| 亚洲在线视频网站| 亚洲欧美日本日韩| 国产精品久久久久久久久免费樱桃 | 一本色道婷婷久久欧美| 欧美**人妖| 欧美国产第二页| 亚洲国产cao| 在线视频欧美一区| 亚洲国产mv| 巨乳诱惑日韩免费av| 美女主播视频一区| 影音先锋久久| 日韩视频免费观看高清在线视频 | 午夜精品久久久久久99热| 免费日韩一区二区| 亚洲第一黄色| 99re热这里只有精品视频| 欧美激情1区2区| 亚洲人体一区| 亚洲图片欧美午夜| 欧美午夜电影一区| 亚洲午夜在线| 99ri日韩精品视频| 欧美日韩国产不卡| 欧美成人一区在线| 黑人操亚洲美女惩罚| 久久免费观看视频| 久久九九国产精品| 国产精品久久久久久亚洲毛片| 在线视频精品一区| 欧美亚洲免费高清在线观看| 国产区二精品视| 久久精品国产亚洲高清剧情介绍| 一区二区三区av| 欧美午夜在线一二页| 一本色道综合亚洲| 性亚洲最疯狂xxxx高清| 国产午夜亚洲精品不卡| 在线亚洲精品福利网址导航| 篠田优中文在线播放第一区| 久久免费视频在线| 亚洲黄色在线看| 欧美日韩a区| 亚洲午夜在线| 久久婷婷久久| 亚洲伦理中文字幕| 国产精品激情偷乱一区二区∴| 亚洲欧美日韩国产综合精品二区| 国产精品99久久久久久久久| 国产精品视频网址| 久久久精彩视频| 亚洲激情av| 亚洲欧美自拍偷拍| 狠狠干综合网| 欧美精品 国产精品| 国产精品99久久久久久宅男| 久久精品国产91精品亚洲| 亚洲国产精品成人综合色在线婷婷 | 在线精品福利| 欧美精品黄色| 午夜精品区一区二区三| 欧美大片91| 亚洲伊人网站| 国产精品免费看| 久久这里有精品视频| 99热精品在线观看| 亚洲视频电影在线| 国产综合欧美| 欧美一区二区性| 久久久久国产精品厨房| 亚洲精品在线观| 国产精品羞羞答答xxdd| 浪潮色综合久久天堂| 一区二区三区毛片| 欧美成人官网二区| 亚洲欧美日韩直播| 国内外成人在线视频| 欧美日韩一区自拍| 久久精品亚洲| 一区二区三区国产盗摄| 免费91麻豆精品国产自产在线观看| av不卡免费看| 亚洲欧美日韩在线播放| 亚洲一区二区毛片| 亚洲福利视频网| 国产精品爽黄69| 欧美国产日韩一区| 久久大香伊蕉在人线观看热2| 99在线|亚洲一区二区| 久久嫩草精品久久久精品| 亚洲一区3d动漫同人无遮挡| 红桃视频成人| 国产精品久久久久久久久久妞妞| 美女网站久久| 校园激情久久| 日韩午夜av| 毛片基地黄久久久久久天堂| 亚洲在线视频| 日韩一区二区精品视频| 极品尤物av久久免费看| 国产精品色婷婷久久58| 欧美成人免费小视频| 欧美一区亚洲二区| 亚洲午夜精品在线| 亚洲人成网站777色婷婷| 快播亚洲色图| 欧美专区福利在线| 亚洲一区二区三| 99国产精品99久久久久久粉嫩 | 欧美一区二区视频免费观看| 99精品99久久久久久宅男|