致敬C++

第一天

C++ 程序可以定義為對(duì)象的集合,這些對(duì)象通過(guò)調(diào)用彼此的方法進(jìn)行交互〉槟埃現(xiàn)在讓我們簡(jiǎn)要地看一下什么是類(lèi)须揣、對(duì)象,方法钱豁、即時(shí)變量耻卡。

對(duì)象 -對(duì)象具有狀態(tài)和行為。例如:一只狗的狀態(tài) - 顏色牲尺、名稱卵酪、品種,行為 - 搖動(dòng)谤碳、叫喚溃卡、吃。對(duì)象是類(lèi)的實(shí)例蜒简。

類(lèi) -類(lèi)可以定義為描述對(duì)象行為/狀態(tài)的模板/藍(lán)圖瘸羡。

方法 -從基本上說(shuō),一個(gè)方法表示一種行為臭蚁。一個(gè)類(lèi)可以包含多個(gè)方法最铁。可以在方法中寫(xiě)入邏輯垮兑、操作數(shù)據(jù)以及執(zhí)行所有的動(dòng)作冷尉。

即時(shí)變量 -每個(gè)對(duì)象都有其獨(dú)特的即時(shí)變量。對(duì)象的狀態(tài)是由這些即時(shí)變量的值創(chuàng)建的系枪。

現(xiàn)在雀哨,來(lái)一份hello word

#include <iostream>

using namespace std;

//main() 是程序開(kāi)始的地方

int main(){

? cout << "hello word!";

? return 0;

}

接下來(lái)我們講解一下上面這段程序:

C++ 語(yǔ)言定義了一些頭文件,這些頭文件包含了程序中必需的或有用的信息。上面這段程序中雾棺,包含了頭文件膊夹。

using namespace std;告訴編譯器使用 std 命名空間。命名空間是 C++ 中一個(gè)相對(duì)新的概念捌浩。

下一行// main() 是程序開(kāi)始執(zhí)行的地方是一個(gè)單行注釋放刨。單行注釋以 // 開(kāi)頭,在行末結(jié)束尸饺。

下一行int main()是主函數(shù)进统,程序從這里開(kāi)始執(zhí)行。

下一行cout << "Hello World";會(huì)在屏幕上顯示消息 "Hello World"浪听。

下一行return 0;終止 main( )函數(shù)螟碎,并向調(diào)用進(jìn)程返回值 0。

編譯 & 執(zhí)行 C++ 程序

接下來(lái)讓我們看看如何把源代碼保存在一個(gè)文件中迹栓,以及如何編譯并運(yùn)行它掉分。下面是簡(jiǎn)單的步驟:

打開(kāi)一個(gè)文本編輯器,添加上述代碼克伊。

保存文件為 hello.cpp酥郭。

打開(kāi)命令提示符,進(jìn)入到保存文件所在的目錄答毫。

鍵入 'g++ hello.cpp '褥民,輸入回車(chē),編譯代碼洗搂。如果代碼中沒(méi)有錯(cuò)誤消返,命令提示符會(huì)跳到下一行,并生成 a.out 可執(zhí)行文件耘拇。

現(xiàn)在撵颊,鍵入 ' a.out' 來(lái)運(yùn)行程序。

您可以看到屏幕上顯示 ' Hello World '惫叛。

C++ 中的分號(hào) & 塊

在 C++ 中倡勇,分號(hào)是語(yǔ)句結(jié)束符。也就是說(shuō)嘉涌,每個(gè)語(yǔ)句必須以分號(hào)結(jié)束妻熊。它表明一個(gè)邏輯實(shí)體的結(jié)束。

例如仑最,下面是三個(gè)不同的語(yǔ)句:

x=y;

y=y+1;

add(x,y);

塊是一組使用大括號(hào)括起來(lái)的按邏輯連接的語(yǔ)句扔役。例如:

{

cout<<"Hello World";

// 輸出 Hello Worldreturn0;

}

C++ 不以行末作為結(jié)束符的標(biāo)識(shí),因此警医,您可以在一行上放置多個(gè)語(yǔ)句亿胸。例如:

x=y;

y=y+1;

add(x,y);

等同于

x=y;y=y+1;add(x,y);

1. C++ 標(biāo)識(shí)符

C++ 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量坯钦、函數(shù)、類(lèi)侈玄、模塊婉刀,或任何其他用戶自定義項(xiàng)目的名稱。一個(gè)標(biāo)識(shí)符以字母 A-Z 或 a-z 或下劃線 _ 開(kāi)始序仙,后跟零個(gè)或多個(gè)字母突颊、下劃線和數(shù)字(0-9)。

C++ 標(biāo)識(shí)符內(nèi)不允許出現(xiàn)標(biāo)點(diǎn)字符潘悼,比如 @洋丐、$ 和 %。C++ 是區(qū)分大小寫(xiě)的編程語(yǔ)言挥等。因此,在 C++ 中堤尾,Manpowermanpower是兩個(gè)不同的標(biāo)識(shí)符肝劲。

下面列出幾個(gè)有效的標(biāo)識(shí)符:

mohd? ? ? zara? ? abc? move_name? a_123

myname50? _temp? j? ? a23b9? ? ? retVal

三字符組

三字符組就是用于表示另一個(gè)字符的三個(gè)字符序列,又稱為三字符序列郭宝。三字符序列總是以兩個(gè)問(wèn)號(hào)開(kāi)頭辞槐。

三字符序列不太常見(jiàn),但 C++ 標(biāo)準(zhǔn)允許把某些字符指定為三字符序列粘室。以前為了表示鍵盤(pán)上沒(méi)有的字符榄檬,這是必不可少的一種方法。

三字符序列可以出現(xiàn)在任何地方衔统,包括字符串鹿榜、字符序列、注釋和預(yù)處理指令锦爵。

下面列出了最常用的三字符序列:

三字符組替換

??= ? #

??/ ? ?\

??' ? ?^

??( ? ?[

??) ? ?]

??! ? ?|

??< ? {

??> ? }

??- ? ~

如果希望在源程序中有兩個(gè)連續(xù)的問(wèn)號(hào)舱殿,且不希望被預(yù)處理器替換,這種情況出現(xiàn)在字符常量险掀、字符串字面值或者是程序注釋中沪袭,可選辦法是用字符串的自動(dòng)連接:"...?""?..."或者轉(zhuǎn)義序列:"...?\?..."。

從Microsoft Visual C++ 2010版開(kāi)始樟氢,該編譯器默認(rèn)不再自動(dòng)替換三字符組冈绊。如果需要使用三字符組替換(如為了兼容古老的軟件代碼),需要設(shè)置編譯器命令行選項(xiàng)/Zc:trigraphs

g++仍默認(rèn)支持三字符組埠啃,但會(huì)給出編譯警告死宣。

int age;

在這里,int 和 age 之間必須至少有一個(gè)空格字符(通常是一個(gè)空白符)霸妹,這樣編譯器才能夠區(qū)分它們十电。

現(xiàn)在大家買(mǎi)的C++教材可能會(huì)經(jīng)常看到頭文件是如下:

#include

然后用現(xiàn)在較新的軟件則會(huì)提示:無(wú)法打開(kāi)源文件"iostream.h"。

這是因?yàn)楝F(xiàn)在新的軟件都是采用標(biāo)準(zhǔn) C 格式鹃骂,而 iostream.h 是 VC6.0 使用的風(fēng)格台盯,也就是標(biāo)準(zhǔn) C 格式還未出臺(tái)之前的風(fēng)格。

出現(xiàn)上述提示只需要進(jìn)行如下修改:

#include <iostream>

using namespace std;

C++中的注釋等同與objective-C 和 Swift?

C++數(shù)據(jù)類(lèi)型

使用編程語(yǔ)言進(jìn)行編程時(shí)畏线,需要用到各種變量來(lái)存儲(chǔ)各種信息静盅。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著寝殴,當(dāng)您創(chuàng)建一個(gè)變量時(shí)蒿叠,就會(huì)在內(nèi)存中保留一些空間。

您可能需要存儲(chǔ)各種數(shù)據(jù)類(lèi)型(比如字符型蚣常、寬字符型市咽、整型、浮點(diǎn)型抵蚊、雙浮點(diǎn)型施绎、布爾型等)的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類(lèi)型贞绳,來(lái)分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么谷醉。

基本的內(nèi)置類(lèi)型

C++ 為程序員提供了種類(lèi)豐富的內(nèi)置數(shù)據(jù)類(lèi)型和用戶自定義的數(shù)據(jù)類(lèi)型。下表列出了七種基本的 C++ 數(shù)據(jù)類(lèi)型:

類(lèi)型關(guān)鍵字

布爾型 ? ? ? bool

字符型 ? ? ? char

整型 ? ? ? ? ? int

浮點(diǎn)型 ? ? ? float

雙浮點(diǎn)型 ? double

無(wú)類(lèi)型 ? ? ? void

寬字符型 ? wchar_t

一些基本類(lèi)型可以使用一個(gè)或多個(gè)類(lèi)型修飾符進(jìn)行修飾:

signed

unsigned

short

long

下面實(shí)例會(huì)輸出您電腦上各種數(shù)據(jù)類(lèi)型的大小冈闭。

實(shí)例

#include <iostream>

using namespace std;

int main(){

? cont ?<< ?"size of Char : " << sizeof(Char) ?<< endl;

? cont? <<? "size of Char : " << sizeOf(int)? << endl;

? cont? <<? "size of Char : " << sizeOf(short int)? << endl;

? cont? <<? "size of Char : " << sizeOf(long int)? << endl;

? cont? <<? "size of Char : " << sizeOf(float)? << endl;

? cont? <<? "size of Char : " << sizeOf(double)? << endl;

? cont? <<? "size of Char : " << sizeOf(wchar_t)? << endl;

? return 0

}

本實(shí)例使用了endl俱尼,這將在每一行后插入一個(gè)換行符,<< 運(yùn)算符用于向屏幕傳多個(gè)值萎攒。我們也使用sizeof()函數(shù)來(lái)獲取各種數(shù)據(jù)類(lèi)型的大小遇八。

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生以下的結(jié)果耍休,結(jié)果會(huì)根據(jù)所使用的計(jì)算機(jī)而有所不同:

Sizeofchar:1

Sizeofint:4

Sizeofshortint:2

Sizeoflongint:8

Sizeoffloat:4

'Sizeofdouble:8

Sizeofwchar_t:4

typedef 聲明

您可以使用typedef為一個(gè)已有的類(lèi)型取一個(gè)新的名字押蚤。下面是使用 typedef 定義一個(gè)新類(lèi)型的語(yǔ)法:

typedef type newname;

例如,下面的語(yǔ)句會(huì)告訴編譯器羹应,feet 是 int 的另一個(gè)名稱:

typedef int feet;

現(xiàn)在揽碘,下面的聲明是完全合法的,它創(chuàng)建了一個(gè)整型變量 distance:

feet distance;

枚舉類(lèi)型:

枚舉類(lèi)型是一種派生的數(shù)據(jù)類(lèi)型园匹,她是用戶定義的若干枚舉常量的集合雳刺;

如果一個(gè)變量有幾種可能的值,可以定義為枚舉類(lèi)型裸违,所謂"枚舉"是指將變量的值一一列舉出來(lái)掖桦,變量的值只能在列舉出來(lái)的值的范圍內(nèi)。

創(chuàng)建枚舉供汛,需要使用關(guān)鍵字enum枪汪。枚舉類(lèi)型的一般形式為:

enum枚舉名{

標(biāo)識(shí)符[=整型常數(shù)],

標(biāo)識(shí)符[=整型常數(shù)],

...

標(biāo)識(shí)符[=整型常數(shù)]

}枚舉變量;

如果枚舉沒(méi)有初始化, 即省掉"=整型常數(shù)"時(shí), 則從第一個(gè)標(biāo)識(shí)符開(kāi)始涌穆。

例如,下面的代碼定義了一個(gè)顏色枚舉雀久,變量 c 的類(lèi)型為 color宿稀。最后,c 被賦值為 "blue"赖捌。

enumcolor

{red,green,blue}c;

c=blue;

默認(rèn)情況下祝沸,第一個(gè)名稱的值為 0,第二個(gè)名稱的值為 1越庇,第三個(gè)名稱的值為 2罩锐,以此類(lèi)推。但是卤唉,您也可以給名稱賦予一個(gè)特殊的值涩惑,只需要添加一個(gè)初始值即可。例如桑驱,在下面的枚舉中境氢,green的值為 5。

enumcolor{red,green=5,blue};

在這里碰纬,blue的值為 6,因?yàn)槟J(rèn)情況下问芬,每個(gè)名稱都會(huì)比它前面一個(gè)名稱大 1悦析,但 red 的值依然為 0。


//

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末此衅,一起剝皮案震驚了整個(gè)濱河市强戴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挡鞍,老刑警劉巖骑歹,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異墨微,居然都是意外死亡道媚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)翘县,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)最域,“玉大人,你說(shuō)我怎么就攤上這事锈麸《浦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵忘伞,是天一觀的道長(zhǎng)薄翅。 經(jīng)常有香客問(wèn)我沙兰,道長(zhǎng),這世上最難降的妖魔是什么翘魄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任鼎天,我火速辦了婚禮,結(jié)果婚禮上熟丸,老公的妹妹穿的比我還像新娘训措。我一直安慰自己,他們只是感情好光羞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布绩鸣。 她就那樣靜靜地躺著,像睡著了一般纱兑。 火紅的嫁衣襯著肌膚如雪呀闻。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天潜慎,我揣著相機(jī)與錄音捡多,去河邊找鬼。 笑死铐炫,一個(gè)胖子當(dāng)著我的面吹牛垒手,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倒信,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼科贬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鳖悠?” 一聲冷哼從身側(cè)響起榜掌,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乘综,沒(méi)想到半個(gè)月后憎账,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卡辰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年胞皱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片九妈。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡朴恳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出允蚣,到底是詐尸還是另有隱情于颖,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布嚷兔,位于F島的核電站森渐,受9級(jí)特大地震影響做入,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜同衣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一竟块、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耐齐,春花似錦浪秘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至辕翰,卻和暖如春夺衍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喜命。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工沟沙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壁榕。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓矛紫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親牌里。 傳聞我的和親對(duì)象是個(gè)殘疾皇子颊咬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容