C++ 程序可以定義為對象的集合锻狗,這些對象通過調(diào)用彼此的方法進行交互≌蒲現(xiàn)在讓我們簡要地看一下什么是類狰住、對象张吉,方法齿梁、即時變量。
創(chuàng)一個小群肮蛹,供大家學(xué)習(xí)交流聊天
如果有對學(xué)C++方面有什么疑惑問題的勺择,或者有什么想說的想聊的大家可以一起交流學(xué)習(xí)一起進步呀。
也希望大家對學(xué)C++能夠持之以恒
C++愛好群伦忠,
如果你想要學(xué)好C++最好加入一個組織省核,這樣大家學(xué)習(xí)的話就比較方便,還能夠共同交流和分享資料昆码,給你推薦一個學(xué)習(xí)的組織:快樂學(xué)習(xí)C++組織 可以點擊組織二字气忠,可以直達
對象 -?對象具有狀態(tài)和行為邻储。例如:一只狗的狀態(tài) - 顏色、名稱旧噪、品種吨娜,行為 - 搖動、叫喚淘钟、吃宦赠。對象是類的實例。
類 -?類可以定義為描述對象行為/狀態(tài)的模板/藍圖米母。
方法 -?從基本上說勾扭,一個方法表示一種行為。一個類可以包含多個方法铁瞒∶钌可以在方法中寫入邏輯、操作數(shù)據(jù)以及執(zhí)行所有的動作慧耍。
即時變量 -?每個對象都有其獨特的即時變量燎斩。對象的狀態(tài)是由這些即時變量的值創(chuàng)建的。
C++ 程序結(jié)構(gòu)
讓我們看一段簡單的代碼蜂绎,可以輸出單詞?Hello World栅表。
實例
#include <iostream>using namespace std;
// main() 是程序開始執(zhí)行的地方 int main(){? cout << "Hello World"; // 輸出 Hello World? return 0;}
接下來我們講解一下上面這段程序:
C++ 語言定義了一些頭文件,這些頭文件包含了程序中必需的或有用的信息师枣。上面這段程序中怪瓶,包含了頭文件?<iostream>。
下一行?using namespace std;?告訴編譯器使用 std 命名空間践美。命名空間是 C++ 中一個相對新的概念洗贰。
下一行?// main() 是程序開始執(zhí)行的地方?是一個單行注釋。單行注釋以 // 開頭陨倡,在行末結(jié)束敛滋。
下一行?int main()?是主函數(shù),程序從這里開始執(zhí)行兴革。
下一行?cout << "Hello World";?會在屏幕上顯示消息 "Hello World"绎晃。
下一行?return 0;?終止 main( )函數(shù),并向調(diào)用進程返回值 0杂曲。
編譯 & 執(zhí)行 C++ 程序
接下來讓我們看看如何把源代碼保存在一個文件中庶艾,以及如何編譯并運行它。下面是簡單的步驟:
打開一個文本編輯器擎勘,添加上述代碼咱揍。
保存文件為 hello.cpp。
打開命令提示符棚饵,進入到保存文件所在的目錄煤裙。
鍵入 'g++ hello.cpp '掩完,輸入回車,編譯代碼硼砰。如果代碼中沒有錯誤藤为,命令提示符會跳到下一行,并生成 a.out 可執(zhí)行文件夺刑。
現(xiàn)在缅疟,鍵入 ' a.out' 來運行程序。
您可以看到屏幕上顯示 ' Hello World '遍愿。
$ g++ hello.cpp
$ ./a.outHello World
請確保您的路徑中已包含 g++ 編譯器存淫,并確保在包含源文件 hello.cpp 的目錄中運行它。
您也可以使用 makefile 來編譯 C/C++ 程序沼填。
C++ 中的分號 & 語句塊
在 C++ 中桅咆,分號是語句結(jié)束符。也就是說坞笙,每個語句必須以分號結(jié)束岩饼。它表明一個邏輯實體的結(jié)束。
例如薛夜,下面是三個不同的語句:
x = y;y = y+1;add(x, y);
語句塊是一組使用大括號括起來的按邏輯連接的語句籍茧。例如:
{? cout << "Hello World"; // 輸出 Hello World? return 0;}
C++ 不以行末作為結(jié)束符的標識,因此梯澜,您可以在一行上放置多個語句寞冯。例如:
x = y;y = y+1;add(x, y);
等同于
x = y; y = y+1; add(x, y);
C++ 標識符
C++ 標識符是用來標識變量、函數(shù)晚伙、類吮龄、模塊,或任何其他用戶自定義項目的名稱咆疗。一個標識符以字母 A-Z 或 a-z 或下劃線 _ 開始漓帚,后跟零個或多個字母、下劃線和數(shù)字(0-9)午磁。
C++ 標識符內(nèi)不允許出現(xiàn)標點字符尝抖,比如 @、& 和 %漓踢。C++ 是區(qū)分大小寫的編程語言牵署。因此,在 C++ 中喧半,Manpower?和?manpower?是兩個不同的標識符。
下面列出幾個有效的標識符:
mohd? ? ? zara? ? abc? move_name? a_123
myname50? _temp? j? ? a23b9? ? ? retVal
C++ 關(guān)鍵字
下表列出了 C++ 中的保留字青责。這些保留字不能作為常量名挺据、變量名或其他標識符名稱取具。
asmelsenewthis
autoenumoperatorthrow
boolexplicitprivatetrue
breakexportprotectedtry
caseexternpublictypedef
catchfalseregistertypeid
charfloatreinterpret_casttypename
classforreturnunion
constfriendshortunsigned
const_castgotosignedusing
continueifsizeofvirtual
defaultinlinestaticvoid
deleteintstatic_castvolatile
dolongstructwchar_t
doublemutableswitchwhile
dynamic_castnamespacetemplate?
完整關(guān)鍵字介紹可查閱:C++ 的關(guān)鍵字(保留字)完整介紹
三字符組
三字符組就是用于表示另一個字符的三個字符序列,又稱為三字符序列扁耐。三字符序列總是以兩個問號開頭暇检。
三字符序列不太常見,但 C++ 標準允許把某些字符指定為三字符序列婉称。以前為了表示鍵盤上沒有的字符块仆,這是必不可少的一種方法。
三字符序列可以出現(xiàn)在任何地方王暗,包括字符串悔据、字符序列、注釋和預(yù)處理指令俗壹。
下面列出了最常用的三字符序列:
三字符組替換
??=#
??/\
??'^
??([
??)]
??!|
??<{
??>}
??-~
如果希望在源程序中有兩個連續(xù)的問號科汗,且不希望被預(yù)處理器替換,這種情況出現(xiàn)在字符常量绷雏、字符串字面值或者是程序注釋中头滔,可選辦法是用字符串的自動連接:"...?""?..."或者轉(zhuǎn)義序列:"...?\?..."。
從Microsoft Visual C++ 2010版開始涎显,該編譯器默認不再自動替換三字符組坤检。如果需要使用三字符組替換(如為了兼容古老的軟件代碼),需要設(shè)置編譯器命令行選項/Zc:trigraphs
g++仍默認支持三字符組期吓,但會給出編譯警告缀蹄。
C++ 中的空格
只包含空格的行,被稱為空白行膘婶,可能帶有注釋缺前,C++ 編譯器會完全忽略它。
在 C++ 中悬襟,空格用于描述空白符衅码、制表符、換行符和注釋脊岳∈哦危空格分隔語句的各個部分,讓編譯器能識別語句中的某個元素(比如 int)在哪里結(jié)束割捅,下一個元素在哪里開始奶躯。因此,在下面的語句中:
int age;
在這里亿驾,int 和 age 之間必須至少有一個空格字符(通常是一個空白符)嘹黔,這樣編譯器才能夠區(qū)分它們。另一方面莫瞬,在下面的語句中:
fruit = apples + oranges;? // 獲取水果的總數(shù)
fruit 和 =儡蔓,或者 = 和 apples 之間的空格字符不是必需的郭蕉,但是為了增強可讀性,您可以根據(jù)需要適當增加一些空格喂江。