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

MyMSDN

MyMSDN記錄開發(fā)新知道

C++ notes (1)

1、標(biāo)識(shí)符命名規(guī)則!

標(biāo)識(shí)符不能包含兩個(gè)連續(xù)的下劃線,也不能以下劃線開頭后面緊跟一個(gè)大寫字母。有些標(biāo)識(shí)符(在函數(shù)外定義的標(biāo)識(shí)符)不能以下劃線開頭。

但是在G++編譯器和VC編譯器下,二者均可正確編譯!

Eclipse&G++Visual studio 2008

2、跨平臺(tái)編譯程序!

這里不是要講解如何跨平臺(tái)編譯程序,也不是告訴你如何更好地編寫通用平臺(tái)的程序規(guī)則,那可能涉及到很多的宏定義以及硬件相關(guān)特性。這里僅為使用示例代碼提供一種精簡(jiǎn)的方式。

用Eclipse+MinGW的方式默認(rèn)會(huì)很精簡(jiǎn),所以把它當(dāng)作一種目標(biāo)!

用Visual Studio 2008創(chuàng)建的程序會(huì)讓你引入預(yù)編譯頭stdafx.h(這通常發(fā)生在使用Visual Studio創(chuàng)建Win32控制臺(tái)應(yīng)用程序,并直接點(diǎn)擊“完成”后),這將導(dǎo)致你無(wú)法將在Eclipse上編寫的程序直接運(yùn)行在Visual Studio上。這時(shí)你應(yīng)該通過(guò)修改項(xiàng)目屬性來(lái)獲得這種精簡(jiǎn)的方式:(選擇項(xiàng)目,右鍵屬性,選擇配置屬性->C/C++->預(yù)編譯頭->創(chuàng)建/使用預(yù)編譯頭,選擇“不使用預(yù)編譯頭”->“確定”后再次編譯即可!)

properties

3、變量命名習(xí)題

//測(cè)試變量命名!
//error C2632: “int”后面的“double”非法
//int double = 3.14159;
//-------------------------------------------------
char _='a';
std::cout<<_<<std::endl;
//-------------------------------------------------
//warning C4091: “”: 沒(méi)有聲明變量時(shí)忽略“bool”的左側(cè)
//error C2059: 語(yǔ)法錯(cuò)誤: “-”
//bool catch-22;
//-------------------------------------------------
//error C2059: 語(yǔ)法錯(cuò)誤: “數(shù)字上的錯(cuò)誤后綴”
//char 1_or_2 = '1';
//-------------------------------------------------
float Float=3.14f;
std::cout<<Float<<std::endl;

4、在C++中,“初始化不是賦值”

初始化指創(chuàng)建變量并給它賦初始值,而賦值則是擦除對(duì)象的當(dāng)前值并用新值代替。

int ival(1024); //直接初始化
int ival = 1024; //復(fù)制初始化

直接初始化語(yǔ)法更靈活,效率更高!

對(duì)內(nèi)置類型來(lái)說(shuō),復(fù)制初始化和直接初始化幾乎沒(méi)有差別。

對(duì)類類型來(lái)說(shuō),有些初始化僅能用直接初始化完成。要想理解其中緣由,需要初步了解類是如何控制初始化的。

例如:

也可以通過(guò)一個(gè)計(jì)數(shù)器和一個(gè)字符初始化string對(duì)象。這樣創(chuàng)建的對(duì)象包含重復(fù)多次的指定字符,重復(fù)次數(shù)由計(jì)數(shù)器指定:

std::string all_nines(10, ‘9’); //all_nines = “9999999999”;

本例中,初始化all_nines的唯一方法是直接初始化。有多個(gè)初始化式時(shí)不能使用復(fù)制初始化。(V注:這里的初始化式即為構(gòu)造函數(shù)的多個(gè)重載;這里所謂的“不能使用”應(yīng)該是“功能有所不及”的意思!)

5、變量初始化規(guī)則

使用未初始化的變量經(jīng)常導(dǎo)致錯(cuò)誤,而且十分隱蔽。問(wèn)題出在未初始化的變量事實(shí)上都有一個(gè)值。編譯器把該變量放到內(nèi)存中的某個(gè)位置,而把這個(gè)位置的無(wú)論哪種位模式都當(dāng)成是變量初始的狀態(tài)。當(dāng)被解釋成整型值時(shí),任何位模式都是合法的值——雖然這個(gè)值不可能是程序員想要的。因?yàn)檫@個(gè)值合法,所以使用它也不可能導(dǎo)致程序崩潰。可能的結(jié)果是導(dǎo)致程序錯(cuò)誤執(zhí)行和/或錯(cuò)誤計(jì)算。

//在Eclipse中運(yùn)行沒(méi)有出現(xiàn)錯(cuò)誤!
//在Visual Studio中運(yùn)行出現(xiàn)運(yùn)行時(shí)錯(cuò)誤!
int ival;    //沒(méi)有初始化!
std::cout<<ival<<std::endl;

6、聲明和定義

為了能讓多個(gè)文件訪問(wèn)相同的變量,C++區(qū)分了聲明和定義。簡(jiǎn)單地說(shuō)就是可以用extern關(guān)鍵字來(lái)聲明,任何有分配內(nèi)存行為的聲明都是定義。定義也是聲明。聲明:標(biāo)明變量的類型和名字;定義:為變量分配存儲(chǔ)空間,還可以為變量指定初始值。

舉例說(shuō)明:

extern double pi; //聲明
double pi; //定義,聲明了pi同時(shí)定義了pi
extern double pi = 3.14159; //定義,因?yàn)樗鼮閜i分配了初值。只有當(dāng)該extern語(yǔ)句
     位于函數(shù)外部的時(shí)候才允許使用初始化式,否則將導(dǎo)致編譯錯(cuò)誤。

7、變量的隱藏:

std::string s1 = "I am a std::string!";
std::cout<<s1<<std::endl;
for(int s1=3; s1!=0; --s1)
std::cout<<"I am a number(int):"<<s1<<std::endl;

提示:在Visual Studio 2008中使用std::string定義一個(gè)變量,再通過(guò)std::cout將其輸出,將會(huì)得到“error C2679: 二進(jìn)制“<<”: 沒(méi)有找到接受“std::string”類型的右操作數(shù)的運(yùn)算符(或沒(méi)有可接受的轉(zhuǎn)換)”錯(cuò)誤信息,這時(shí)要檢查頭文件中是否包含#include <string>。而在Eclipse中則不用如此設(shè)置(具體看編譯器版本)。這與標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)的具體細(xì)節(jié)有關(guān),在MSVC中,它在文件Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\string中被實(shí)現(xiàn),在GNU中,它在base_string.h中被實(shí)現(xiàn)。在使用std::string時(shí),總是包含#include <string>是一個(gè)好習(xí)慣!

8、const對(duì)象默認(rèn)為文件的局部變量

一般聲明變量后可以在其它文件中通過(guò)extern關(guān)鍵字聲明并使用該變量:

//文件1:
int counter;
//文件2:
extern int counter;
++counter;

但是如果是const則無(wú)法訪問(wèn)。可以通過(guò)顯式指定extern關(guān)鍵字使其成為全局可訪問(wèn)對(duì)象:

//文件1:
extern const int bufSize = getBufSize();
//文件2:
extern count int bufSize;
//……使用bufSize

注解:非const變量默認(rèn)為extern。要使const變量能夠在其他的文件中訪問(wèn),必須顯式地指定它為extern。

9、引用

int ival = 1024;
int &refVal = ival;

當(dāng)引用初始化后,只要該引用存在,就保持綁定到初始化時(shí)指向的對(duì)象。不可能將引用綁定到另一個(gè)對(duì)象。

也正因?yàn)槿绱耍砸帽戎羔樀膬?yōu)勢(shì)就在于:引用不可以在方法中篡改,這使得方法變量變得安全了。

10、const引用

const int ival = 1024;
const int &refVal = ival;

這里我們要求左側(cè)的類型是一致的,包括const!

非const引用只能綁定到與該引用同類型的對(duì)象。
const引用則可以綁定到不同但相關(guān)的類型的對(duì)象或綁定到右值。(具體示例詳見(jiàn)C++Primer v4 P52)

例如:

//錯(cuò)誤代碼
double dval = 3.14;
const int &ri = dval;

編譯器會(huì)將這些代碼轉(zhuǎn)換成如以下形式的編碼:

int temp = dval;
const int &ri = temp;
如果ri不是const,那么可以給ri賦一新值。這樣做不會(huì)修改dval,而是修改了temp。期望對(duì)ri的賦值會(huì)修改dval的程序員會(huì)發(fā)現(xiàn)dval并沒(méi)有被修改。僅允許const引用綁定到需要臨時(shí)使用的值完全避免了這個(gè)問(wèn)題,因?yàn)閏onst引用是只讀的。
 

但是如下代碼可以執(zhí)行:

int ival = 1024;
const int &refVal = ival;
++ival;
//++refVal;    //error C3892: “refVal” 不能給常量賦值
std::cout<<"ival="<<ival<<"\trefVal="<<refVal<<std::endl;

輸出:ival=1025    refVal=1025

const double dval = 3.14;
const int &ri = (int)dval;
std::cout<<ri<<std::endl;
輸出:3

posted on 2008-12-19 17:52 volnet 閱讀(2933) 評(píng)論(6)  編輯 收藏 引用 所屬分類: C++ Primer 學(xué)習(xí)筆記

評(píng)論

# re: C++ notes (1) 2008-12-20 13:54 9278

看完第一句就知道copy的哪本書了 噢也!  回復(fù)  更多評(píng)論   

# re: C++ notes (1) 2008-12-20 13:56 volnet

@9278
從所屬分類也可以判斷~恭喜樓上!   回復(fù)  更多評(píng)論   

# re: C++ notes (1) 2008-12-21 16:11 永恒白天

不讓你使用 下劃線 的原因是標(biāo)準(zhǔn)規(guī)定說(shuō)這些都是預(yù)留給編譯器用的  回復(fù)  更多評(píng)論   

# re: C++ notes (1) 2008-12-21 16:41 volnet

@永恒白天
所以那句話翻譯或者表達(dá)不好,怎么能說(shuō)“不能”二字!呵呵  回復(fù)  更多評(píng)論   

# re: C++ notes (1) 2009-03-13 19:08 sinor51

不說(shuō):“不能”,您認(rèn)為應(yīng)該翻譯成什么呢?  回復(fù)  更多評(píng)論   

# re: C++ notes (1) 2009-03-13 19:15 volnet

@sinor51
可以說(shuō)“不應(yīng)該”,不能一般是指編譯會(huì)出錯(cuò)吧  回復(fù)  更多評(píng)論   

特殊功能
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产日韩欧美三级| 米奇777在线欧美播放| 999亚洲国产精| 久久久久五月天| 国产欧美三级| 亚洲性图久久| 亚洲精品一区二区三区在线观看 | 久久本道综合色狠狠五月| 欧美日韩影院| 一区二区av在线| 91久久嫩草影院一区二区| 亚洲午夜电影网| 欧美日韩亚洲一区三区| 一本色道久久综合精品竹菊| 亚洲激情视频在线播放| 免费精品99久久国产综合精品| 国产午夜精品在线| 久久经典综合| 久久精品国产亚洲高清剧情介绍| 国产伦精品免费视频 | 亚洲在线中文字幕| 欧美精品自拍| 一本久久综合亚洲鲁鲁五月天| 欧美激情国产日韩精品一区18| 久久久亚洲影院你懂的| 欧美在线免费一级片| 艳女tv在线观看国产一区| 日韩午夜电影av| 国产精品午夜国产小视频| 久久国产福利国产秒拍| 久久精品国产久精国产爱| 国内精品模特av私拍在线观看| 另类成人小视频在线| 久久麻豆一区二区| 99成人在线| 中文亚洲免费| 国内揄拍国内精品少妇国语| 农夫在线精品视频免费观看| 欧美激情视频网站| 亚洲欧美日韩在线一区| 欧美亚洲在线播放| 在线观看日韩www视频免费| 亚洲国产乱码最新视频| 国产精品夫妻自拍| 久久综合一区| 欧美日韩网址| 免费黄网站欧美| 国产精品国产福利国产秒拍| 美女91精品| 欧美日韩亚洲国产精品| 久久久久久九九九九| 欧美久久影院| 久久网站免费| 国产精品igao视频网网址不卡日韩| 欧美在线视频在线播放完整版免费观看 | 亚洲一区免费网站| 亚洲电影在线播放| 欧美视频一区二区三区在线观看| 欧美专区在线观看| 欧美fxxxxxx另类| 欧美亚洲在线播放| 欧美成人资源| 久久久久久综合网天天| 欧美理论电影在线播放| 性欧美超级视频| 欧美精品在线视频| 欧美国产精品va在线观看| 国产伦精品一区二区三区高清| 欧美激情在线| 国产主播精品| 亚洲欧美国产不卡| 日韩视频亚洲视频| 久久婷婷综合激情| 久久久www成人免费毛片麻豆| 欧美大学生性色视频| 老司机免费视频一区二区三区| 国产精品自拍在线| 一本色道久久综合亚洲二区三区 | 欧美经典一区二区| 免费人成网站在线观看欧美高清| 国产精品蜜臀在线观看| 亚洲国产专区校园欧美| 极品少妇一区二区三区精品视频| 一区二区欧美日韩| 亚洲成人在线观看视频| 99一区二区| 亚洲精品一区二区三区福利| 久久久久久国产精品mv| 久久久久一区二区三区四区| 国产精品日韩在线| 夜夜嗨av一区二区三区四区| 亚洲美女免费视频| 免费日韩成人| 亚洲成色精品| 在线观看成人小视频| 欧美专区在线观看一区| 欧美制服丝袜第一页| 国产精品欧美日韩一区| 这里只有精品电影| 亚洲女ⅴideoshd黑人| 国产精品久久久一区二区| 99热免费精品在线观看| 亚洲影视在线播放| 国产精品高清在线| 中文av一区二区| 亚洲欧美日韩一区在线| 国产伦精品一区二区三区视频黑人 | 久久综合综合久久综合| 韩日欧美一区| 久久久中精品2020中文| 欧美激情视频一区二区三区免费| 亚洲国产精品一区二区www在线| 久久夜色精品国产| 欧美1区2区视频| 91久久久久久久久| 久久精品日韩欧美| 亚洲福利视频在线| 中日韩在线视频| 国产精品一区亚洲| 久久人体大胆视频| 91久久夜色精品国产九色| 亚洲视频一二三| 国产精品一区二区久久国产| 久久精品亚洲热| 亚洲电影激情视频网站| 亚洲视频网在线直播| 国产精品自拍网站| 另类春色校园亚洲| 一区二区三区日韩欧美| 久久精品视频在线看| 亚洲精品一区二区三区蜜桃久| 欧美日韩亚洲国产精品| 久久成人国产| 日韩视频免费观看高清完整版| 亚洲午夜精品网| 尤物网精品视频| 国产精品夜夜夜一区二区三区尤| 欧美在线观看你懂的| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久夜色精品国产亚洲aⅴ| 欧美激情视频免费观看| 欧美一区=区| 亚洲理伦在线| 激情欧美日韩| 亚洲电影免费观看高清| 欧美一区免费视频| 亚洲精品视频一区| 快播亚洲色图| 亚洲欧美www| 亚洲巨乳在线| 激情欧美一区| 国产亚洲一区二区在线观看| 亚洲动漫精品| 久久久99免费视频| 亚洲女同同性videoxma| 在线电影一区| 国产欧美日韩三级| 欧美视频导航| 欧美黄在线观看| 狼狼综合久久久久综合网| 亚洲乱码国产乱码精品精| 免费日韩av片| 另类欧美日韩国产在线| 久久精品色图| 欧美在线播放视频| 亚洲综合精品自拍| 亚洲毛片在线看| 亚洲美女色禁图| 亚洲精品在线视频| 亚洲三级电影全部在线观看高清| 极品少妇一区二区| 国精产品99永久一区一区| 国产精一区二区三区| 国产精品一区亚洲| 国产欧美日韩另类一区| 国产精品久久久久永久免费观看| 欧美精品久久久久久久久久| 老司机一区二区三区| 久久免费99精品久久久久久| 欧美一区二区黄色| 欧美一级在线视频| 久久久中精品2020中文| 亚洲经典视频在线观看| 欧美在线地址| 久久精品国产亚洲5555| 久久久噜久噜久久综合| 麻豆国产精品777777在线| 久久伊人亚洲| 欧美精品一二三| 欧美日韩不卡合集视频| 国产精品久久久久9999吃药| 国产精品一区二区黑丝| 国产又爽又黄的激情精品视频| 国产亚洲激情| 在线欧美影院| 99国产精品久久久久久久| 亚洲小说欧美另类婷婷| 香蕉久久夜色精品| 久久香蕉国产线看观看网| 欧美电影在线观看完整版|