C++ 編程學(xué)習(xí)所需掌握的單詞和語法句子

一、基本關(guān)鍵字(單詞)

1. 數(shù)據(jù)類型相關(guān)

int含義

用于聲明整數(shù)類型的變量。

示例

int?age;??// 聲明一個(gè)名為 age 的整數(shù)變量age?=?25;?// 給 age 變量賦值為 25

理解:int?就像是一個(gè)容器,專門用來存放整數(shù),在這個(gè)例子中,age?這個(gè)容器被用來存放代表年齡的整數(shù) 25。

float?和?double

含義

float?用于聲明單精度浮點(diǎn)數(shù)變量,double?用于聲明雙精度浮點(diǎn)數(shù)變量,浮點(diǎn)數(shù)可以表示小數(shù)。

示例

float?price?=?9.99f;??// 聲明一個(gè)單精度浮點(diǎn)數(shù)變量 price 并初始化為 9.99double?pi?=?3.1415926;?// 聲明一個(gè)雙精度浮點(diǎn)數(shù)變量 pi 并初始化為 3.1415926

理解:float?和?double?也是容器,但它們可以存放帶有小數(shù)的數(shù)字。float?的精度相對較低,而?double?的精度更高,能表示更精確的小數(shù)。

char

含義

用于聲明字符類型的變量。

示例char grade ='A';?// 聲明一個(gè)字符變量 grade 并初始化為字符 'A'

理解:char?容器只能存放一個(gè)字符,這里?grade?存放了代表成績等級的字符 'A'。

bool

含義

用于聲明布爾類型的變量,布爾類型只有兩個(gè)值:true?和?false。

示例

bool ?isStudent = true;// 聲明一個(gè)布爾變量 isStudent 并初始化為 true

理解

bool?變量就像一個(gè)開關(guān),只有開(true)和關(guān)(false)兩種狀態(tài),這里?isStudent?表示是否是學(xué)生,值為?true?表示是學(xué)生。

2. 控制結(jié)構(gòu)相關(guān)

if、else

含義

if?用于條件判斷,如果條件為真,則執(zhí)行?if?后面的代碼塊;else?用于?if?條件不成立時(shí)執(zhí)行的代碼塊。

示例

int?score?=?85;if(score?>=60){? ? std::cout?<<"及格了"<<?std::endl;}else{? ? std::cout?<<"不及格"<<?std::endl;}

理解:程序先判斷?score?是否大于等于 60,如果是,則輸出 “及格了”;如果不是,則執(zhí)行?else?后面的代碼,輸出 “不及格”。

for

含義

用于創(chuàng)建循環(huán),讓一段代碼重復(fù)執(zhí)行一定的次數(shù)。

示例

for?(int?i?=?0;?i?<?5;?i++)?{? ? std::cout?<<?i?<<?std::endl;}

理解

for?循環(huán)有三個(gè)部分,初始化部分?int i = 0?聲明并初始化一個(gè)循環(huán)變量?i;條件部分?i < 5?表示只要?i?小于 5,就會(huì)繼續(xù)執(zhí)行循環(huán)體;迭代部分?i++?表示每次循環(huán)結(jié)束后,i?的值加 1。所以這個(gè)循環(huán)會(huì)依次輸出 0 到 4。

while

含義

只要指定的條件為真,就會(huì)一直執(zhí)行循環(huán)體中的代碼。

示例

int?num?=?0;while?(num?<?3)?{? ? std::cout?<<?num?<<?std::endl;? ? num++;}

理解:程序先判斷?num?是否小于 3,如果是,則執(zhí)行循環(huán)體中的代碼,輸出?num?的值并將?num?加 1,然后再次判斷條件,直到條件不成立為止。

do-while

含義

與?while?循環(huán)類似,但?do-while?循環(huán)會(huì)先執(zhí)行一次循環(huán)體,然后再判斷條件。

示例

int?count?=?0;do?{? ? std::cout?<<?count?<<?std::endl;? ? count++;}?while?(count?<?2);

理解

無論條件是否成立,do?后面的代碼塊都會(huì)先執(zhí)行一次,然后再判斷?while?后面的條件,如果條件為真,則繼續(xù)循環(huán),否則結(jié)束循環(huán)。

3. 函數(shù)相關(guān)

void

含義

表示函數(shù)沒有返回值。

示例

void?printHello()?{? ? std::cout?<<?"Hello!"?<<?std::endl;}

理解:printHello?函數(shù)的作用是輸出 “Hello!”,它不需要返回任何值,所以返回類型為?void。

return

含義

用于從函數(shù)中返回一個(gè)值,并結(jié)束函數(shù)的執(zhí)行。

int?add(int?a,?int?b)?{? ??return?a?+?b;}

理解

add?函數(shù)接受兩個(gè)整數(shù)參數(shù)?a?和?b,將它們相加后通過?return?語句返回相加的結(jié)果。

二、常用語法句子

1. 變量聲明與初始化

int?number?=?10;?// 聲明一個(gè)整數(shù)變量 number 并初始化為 10

理解

這是一種常見的變量聲明和初始化方式,先指定變量的類型?int,然后給變量命名?number,最后用?=?給變量賦初始值 10。

2. 函數(shù)定義

int?multiply(int?x,?int?y)?{? ??return?x?*?y;}

理解

這是一個(gè)函數(shù)定義,int?表示函數(shù)的返回類型,multiply?是函數(shù)名,(int x, int y)?是函數(shù)的參數(shù)列表,包含兩個(gè)整數(shù)參數(shù)?x?和?y,函數(shù)體中使用?return?語句返回?x?和?y?的乘積。

3. 類定義

class?Rectangle?{private:? ??int?length;? ??int?width;public:? ??Rectangle(int?l,int?w){? ? ? ? length?=?l;? ? ? ? width?=?w;? ??}? ??intarea(){? ? ? ??return?length?*?width;? ??}};

理解

class?關(guān)鍵字用于定義一個(gè)類,這里定義了一個(gè)名為?Rectangle?的類。private?部分的成員變量?length?和?width?只能在類的內(nèi)部訪問;public?部分包含一個(gè)構(gòu)造函數(shù)?Rectangle(int l, int w)?用于初始化對象的成員變量,還有一個(gè)成員函數(shù)?area()?用于計(jì)算矩形的面積。

三、標(biāo)準(zhǔn)庫相關(guān)單詞和語法

1.?std?命名空間

含義

C++ 標(biāo)準(zhǔn)庫中的所有標(biāo)識符都定義在?std?命名空間中。

示例

#include?<iostream>int?main()?{? ? std::cout?<<?"Hello, World!"?<<?std::endl;? ??return?0;}

理解

std::cout?是標(biāo)準(zhǔn)輸出流對象,std::endl?用于換行,通過?std::?前綴來訪問?std?命名空間中的標(biāo)識符。

2. 包含頭文件

示例

#include?<vector>

理解

#include?是預(yù)處理指令,用于將指定的頭文件包含到當(dāng)前源文件中。#include <vector>?表示包含 C++ 標(biāo)準(zhǔn)庫中的?vector?頭文件,這樣就可以使用?std::vector?容器了。

四、內(nèi)存管理相關(guān)關(guān)鍵字和語法

1.?new?和?delete

關(guān)鍵字含義new

用于在堆上動(dòng)態(tài)分配內(nèi)存,并返回指向該內(nèi)存的指針。

delete

用于釋放?new?分配的內(nèi)存,防止內(nèi)存泄漏。

示例代碼

#include?<iostream>intmain(){? ??// 使用 new 動(dòng)態(tài)分配一個(gè)整數(shù)的內(nèi)存? ??int*?ptr?=newint;? ??*ptr?=10;? ? std::cout?<<"Value: "<<*ptr?<<?std::endl;? ??// 使用 delete 釋放內(nèi)存? ??delete?ptr;? ??return0;}

理解方式

在上述代碼中,new int?會(huì)在堆上分配一個(gè)足夠存儲(chǔ)整數(shù)的內(nèi)存塊,并返回該內(nèi)存塊的起始地址,這個(gè)地址被賦值給指針?ptr。通過?*ptr = 10?可以向該內(nèi)存塊寫入值。

當(dāng)不再需要這塊內(nèi)存時(shí),使用?delete ptr?釋放它。如果不釋放,這塊內(nèi)存將一直被占用,直到程序結(jié)束,造成內(nèi)存泄漏。

2.?new[]?和?delete[]

關(guān)鍵字含義new[]

用于在堆上動(dòng)態(tài)分配數(shù)組內(nèi)存。

delete[]

用于釋放?new[]?分配的數(shù)組內(nèi)存。

示例代碼

#include?<iostream>intmain(){? ??// 使用 new[] 動(dòng)態(tài)分配一個(gè)包含 5 個(gè)整數(shù)的數(shù)組? ??int*?arr?=newint[5];? ??for(int?i?=0;?i?<5;++i){? ? ? ? arr[i]=?i;? ??}? ??for(int?i?=0;?i?<5;++i){? ? ? ? std::cout?<<?arr[i]<<" ";? ??}? ? std::cout?<<?std::endl;? ??// 使用 delete[] 釋放數(shù)組內(nèi)存? ??delete[]?arr;? ??return0;}

理解方式

new int[5]

?會(huì)在堆上分配一塊足夠存儲(chǔ) 5 個(gè)整數(shù)的連續(xù)內(nèi)存塊,并返回該內(nèi)存塊的起始地址給指針?arr。

通過循環(huán)可以給數(shù)組元素賦值并輸出。使用?delete[] arr?來釋放整個(gè)數(shù)組的內(nèi)存,要注意必須使用?delete[]?而不是?delete,否則會(huì)導(dǎo)致未定義行為。

五、繼承與多態(tài)相關(guān)關(guān)鍵字和語法

1.?class?與繼承

關(guān)鍵字含義

在 C++ 中,class?不僅可以定義獨(dú)立的類,還能用于實(shí)現(xiàn)類之間的繼承關(guān)系。

示例代碼

#include?<iostream>// 基類classShape{public:? ??virtualvoiddraw(){? ? ? ? std::cout?<<"Drawing a shape."<<?std::endl;? ??}};// 派生類classCircle:public?Shape{public:? ??voiddraw()override{? ? ? ? std::cout?<<"Drawing a circle."<<?std::endl;? ??}};intmain(){? ? Shape*?shapePtr?=newCircle();? ? shapePtr->draw();? ??delete?shapePtr;? ??return0;}

理解方式

定義了一個(gè)基類?Shape?和一個(gè)派生類?Circle,Circle?通過?: public Shape?表示它繼承自?Shape?類。

Shape

?類中的?draw?函數(shù)被聲明為?virtual,表示這是一個(gè)虛函數(shù)。Circle?類中的?draw?函數(shù)使用?override?關(guān)鍵字,明確表示它重寫了基類的虛函數(shù)。

在?main?函數(shù)中,創(chuàng)建了一個(gè)?Circle?對象,并使用基類指針?shapePtr?指向它,調(diào)用?draw?函數(shù)時(shí),會(huì)根據(jù)對象的實(shí)際類型(Circle)調(diào)用相應(yīng)的函數(shù),這就是多態(tài)的體現(xiàn)。

2.?virtual?和?override

關(guān)鍵字含義virtual

用于聲明虛函數(shù),使得在通過基類指針或引用調(diào)用該函數(shù)時(shí),能夠根據(jù)對象的實(shí)際類型來決定調(diào)用哪個(gè)版本的函數(shù)。

override

用于派生類中重寫基類的虛函數(shù),編譯器會(huì)檢查是否真的重寫了基類的虛函數(shù),如果沒有則會(huì)報(bào)錯(cuò)。

示例代碼可參考上述繼承示例

理解方式virtual

?關(guān)鍵字為多態(tài)機(jī)制奠定了基礎(chǔ),它允許在運(yùn)行時(shí)根據(jù)對象的實(shí)際類型來選擇合適的函數(shù)實(shí)現(xiàn)。

override

?關(guān)鍵字提高了代碼的可讀性和安全性,確保派生類正確地重寫了基類的虛函數(shù),避免因函數(shù)名拼寫錯(cuò)誤等問題導(dǎo)致的意外行為。

六、模板相關(guān)關(guān)鍵字和語法

1.?template

關(guān)鍵字含義template

?用于定義模板,模板是 C++ 實(shí)現(xiàn)泛型編程的重要工具,它可以讓我們編寫與類型無關(guān)的代碼。

示例代碼(函數(shù)模板)

#include?<iostream>template<typenameT>T?max(T a,?T b){? ??return(a?>?b)??a?:?b;}intmain(){? ??int?intMax?=max(10,20);? ??double?doubleMax?=max(3.14,2.71);? ? std::cout?<<"Max int: "<<?intMax?<<?std::endl;? ? std::cout?<<"Max double: "<<?doubleMax?<<?std::endl;? ??return0;}

理解方式template <typename T>

?聲明了一個(gè)模板參數(shù)?T,T?可以代表任意類型。在?max?函數(shù)中,使用?T?作為參數(shù)類型和返回類型,這樣函數(shù)就可以處理不同類型的數(shù)據(jù)。

在?main?函數(shù)中,分別調(diào)用?max?函數(shù)處理整數(shù)和雙精度浮點(diǎn)數(shù),編譯器會(huì)根據(jù)實(shí)際傳入的參數(shù)類型自動(dòng)實(shí)例化出相應(yīng)的函數(shù)版本。

2. 類模板

示例代碼

#include?<iostream>template<typenameT>classContainer{private:? ? T value;public:? ??Container(T val):value(val){}? ? T?getValue(){? ? ? ??return?value;? ??}};intmain(){? ? Container<int>intContainer(100);? ? Container<double>doubleContainer(3.14);? ? std::cout?<<"Int value: "<<?intContainer.getValue()<<?std::endl;? ? std::cout?<<"Double value: "<<?doubleContainer.getValue()<<?std::endl;? ??return0;}

理解方式

定義了一個(gè)類模板?Container,它有一個(gè)模板參數(shù)?T,類中使用?T?作為成員變量和函數(shù)返回值的類型。

在?main?函數(shù)中,通過?Container<int>?和?Container<double>?分別實(shí)例化出處理整數(shù)和雙精度浮點(diǎn)數(shù)的類對象,這樣就可以用同一個(gè)類模板處理不同類型的數(shù)據(jù)。

七、異常處理相關(guān)關(guān)鍵字和語法

1.?try、catch?和?throw

關(guān)鍵字含義

try用于包裹可能會(huì)拋出異常的代碼塊。

catch用于捕獲并處理?try塊中拋出的異常。

throw用于拋出異常。

示例代碼

#include?<iostream>doubledivide(double?a,double?b){? ??if(b?==0){? ? ? ??throw"Division by zero!";? ??}? ??return?a?/?b;}intmain(){? ??try{? ? ? ??double?result?=divide(10,0);? ? ? ? std::cout?<<"Result: "<<?result?<<?std::endl;? ??}catch(constchar*?msg){? ? ? ? std::cerr?<<"Error: "<<?msg?<<?std::endl;? ??}? ??return0;}

理解方式

在?divide?函數(shù)中,如果除數(shù)?b?為 0,則使用?throw?拋出一個(gè)字符串異常。

在?main?函數(shù)中,try?塊中調(diào)用?divide?函數(shù),當(dāng)拋出異常時(shí),程序會(huì)跳轉(zhuǎn)到相應(yīng)的?catch?塊中,這里捕獲的是?const char*?類型的異常,并輸出錯(cuò)誤信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容