C 的詳細學習

2021-09-29 03:25:30 字數 4195 閱讀 9726

1.c++的輸入/輸出函式(包括cin和cout)在標頭檔案iostream.h中定義;

2.c++源程式的檔名用.cpp作為副檔名;

3.對函式的宣告必須用原型;

c++的輸入/輸出流

1.c++的輸入/輸出不僅可以用c的輸入/s輸出函式,而且可以用c++的輸入、輸出流cin/cout;

2.「<<」和」>>」是過載運算子,《用於將其右邊的內容輸出到螢幕上,>>用於將鍵盤中輸入分乙個數送到右邊的變數中。

3.c++源程式經過編譯器編譯成.obj檔案,然後經過c++聯結器,將目標檔案與庫檔案連線,生成乙個擴充套件名為.exe的執行檔案;

4.cout和插入運算子「<<」一起使用,可以輸出整數、實數、字元和字串。

5.setw,設定資料流的長度。用於輸入時,當輸入的字串長度大於設定長度時,超出部分將被截斷;用於輸出時,當輸出資料的長度小於所設定的長度時,資料將以右對齊方式輸出,否則,按原樣輸出。

1.引用是一種特殊型別的變數,它通常被認為是另乙個已經存在的變數的別名。引用的值是相關變數的儲存單元中的內容,對引用的操作實際上是對相關變數的操作。定義的格式如下:

a)型別 &引用名 = 變數名

b)int x = 15,&y=x;//給y賦值,即初始化,使引用y與變數x具有相同的記憶體單元。

c)y =20;//給y賦值,把x的值變為20;

2.c++使用的主要目的是將引用作為函式的形參,使形參值的改變影響實參值得變化。在c++中,稱這種函式呼叫方式為引用呼叫或引用傳遞。

3.c++用const識別符號來定義常量,它的作用與#define相似,但比它安全;

4.用const定義整型變數時,關鍵字int可以省略,例如下面兩個是等價的

a)const int x = 10;

b)const x = 10;

5.與#define定義的常量不同的是,const定義的常量可以有自己的資料型別,使c++的編譯程式可以進行嚴格的型別檢查。

1.函式的過載是指同乙個函式名可以對應多個函式的實現。

2.函式過載只能以函式的引數個數或引數的資料型別不同為依據;

3.函式名相同,形參個數和型別也相同,只是函式返回值的型別不同,不能認為是過載函式。編譯器不以返回值來區分函式,因此編譯時會出現語法錯誤。

4.c++中允許使用帶預設引數的函式,賦予預設值的引數必須放在形參表的最右端。有時候使用帶預設引數的函式比用過載函式更方便、靈活。

1.可以用作用域運算子」::」指定變數的作用域,使其可以訪問當前作用域以外的表示符。「::」是乙個單目運算子,其右邊的運算元是乙個全域性作用域範圍內的識別符號。

2.c++使用new和delete進行動態分配記憶體和釋放記憶體空間。

3.new不需要使用運算子sizeof為不同型別的變數計算所需記憶體的大小,而是自動為變數分配正確長度的記憶體空間,如果分配成功,運算子new返回指定型別的乙個指標,分配失敗返回0;使用格式:

new 型別[初值]

a)new不僅可以為變數分配記憶體,也可以為陣列分配記憶體。

b)int *p;

c)p = new int(10);//分配10個位元組的記憶體單元

d)int *p;p=new int[10];為指標p分配10個元素的整型陣列的記憶體單元;

4.運算子delete,必須用於先前new分配的有效指標,不能用於malloc函式混用。如果使用delete釋放的記憶體空間不是new申請的,可能引起程式執行錯誤。使用的一般格式為:

a)delete 指標變數

5.const修飾常量,格式為:

a)const 資料型別 常量名 = 初始值;

b)eg:const int k = 10; == #define k 10;

1.乙個類可以含有private,protected,public三部分,預設為private。

2.class rect_area;//分號不能少

3.與結構體一樣,類定義只說明了產生了一種新的資料型別,系統並沒有為該類分配記憶體空間,要使用該資料型別,還必須定義其物件。

4.物件的定義

i.定義號類之後,在定義類的物件。類名 物件名錶

ii.在定義類的同時直接定義類的物件

class 類名物件名錶;

5.類中的變數稱為類的資料成員,函式成為成員函式。類的資料成員說明物件的特徵,而成員函式決定物件的處理方法。在物件內,只有屬於該物件的成員函式才可能訪問該物件的資料成員,這樣,其他函式就不會無意破壞它的內容,從而達到保護和隱藏資料的效果。

6.類的方法是定義在類的外面實現的,用」::」隔開;

7.類中資料成員的資料型別可以是任意的,但不允許對所定義的資料成員進行初始化。

8.c++中,一般是將類的宣告放在乙個.**件中,而把成員函式放在乙個與.**件同名的.cpp檔案中。

9.類的私有成員不能為外部函式所使用。

10.在類外定義成員函式時,在函式定義的前面加關鍵字inline,說明函式為內聯函式。內聯函式內不允許用迴圈語句和開關語句,並且內聯函式無法遞迴呼叫。

11.析構函式也是類中特殊成員函式,與建構函式正好相反,用於釋放分配給物件的儲存空間,通常可以利用析構函式釋放建構函式動態申請。

1.析構函式的名稱與定義它的類具有相同的名稱,只是在類名稱前面要加上乙個波浪符號(~),析構函式不允許有返回值,與建構函式最大的差別是析構函式不允許帶引數,而且也不能過載,因此只能有乙個析構函式。

2.析構函式自動呼叫:

a.當物件定義在乙個函式體中,該函式呼叫結束後,析構函式自動呼叫。

b.用運算子new為物件分配動態記憶體後,用delete釋放物件時,析構函式被自動呼叫。

3.建構函式和析構函式的常見用法是在建構函式中用new為變數分配儲存空間,在析構函式中用delete釋放已分配的空間。

1.類的友元,使用友元函式或友元類的成員函式可以訪問類的私有成員。

2.類的友元函式在類中進行宣告,而在類的範圍ie之外進行定義,宣告時必須在函式型別前面加上關鍵字friend。在乙個類中,可以利用關鍵字friend把其他類或非成員函式宣告為該類的友元,因此,友元函式u是在該類宣告中由關鍵字friend修飾的非成員函式。

3.如果a類是b類的友元類,那麼a類所有成員函式都是b類的友元函式,都可以訪問b類的私有和保護成員。友元類的一般定義為:

class b

4.友元類的成員函式可以像友元函式一樣訪問該類的所有成員。友元類不一定是相互的,如果a是b的友元類,b不一定是a的友元類。當兩個類的聯絡較緊密時,可以將兩個類相互定義為對方的友元。

5.c++規定,友元類必須在它被定義之前宣告.乙個類的友元函式可以維護。

this指標

1.當乙個物件呼叫成員函式時,該成員函式的this指標便指向這個物件。不能通過this指標呼叫類的友元函式,因為友元函式不屬於類的成員,也不能使用this指標訪問類的靜態成員。

2.this指標是指向乙個類的物件的位址,它是c++編譯器自動產生而使用的一種隱含指標,它隱含於每乙個類的成員函式之中,類成員函式使用this指標來處理物件。this指標指向該成員函式所屬類的物件。成員函式訪問類中成員變數的格式可以寫成:

a)this->成員變數;

1.運算子的過載實質就是函式的過載,過載為類的成員函式和過載為類的友元函式。

2.當運算子過載為類的成員函式時,首先在類定義時使用如下格式宣告待過載的運算子

a)型別 operator 運算子(形參表)

b)過載運算子函式:

c)返回值型別 類名稱::operator《過載運算子》(形參表)

1.相同的部分定義為乙個類,稱為基類。在該類的基礎上增加新的內容,構造新類稱為派生類,新類可以繼承基類的所有資料成員和成員函式。

2.定義派生類的一般形式如下:

class 派生類名:[繼承方式]基類名

3.定義派生類時,如果將基類的繼承方式指定為private,則基類的public和protected成員都是派生類的private成員;基類的private成員仍然保持private屬性,只有基類的成員函式可以引用它。即當繼承方式為private時,派生類的物件不能訪問基類中以任何方式定義的成員函式。

4.在派生類的定義中只有乙個基類名,這種方式叫做單繼承。在派生類的定義中可以有多個基類名,這種繼承方式稱為多繼承。定義格式:

a)class 派生類名:[繼承方式]基類名錶1,基類名錶2….

5.基類定義了帶有形引數的建構函式,派生類就應該定義建構函式,通過建構函式將引數傳遞給基類建構函式,以便基類進行初始化時能夠得到必要的資料。

6.派生類建構函式的一般語法形式為:

a)派生類名::派生類名(引數總表):基類名1(參數列1),…基類名n(引數n)

7.析構函式的呼叫順序與建構函式的呼叫順序剛好相反。

c 詳細學習 引用

引用是乙個變數的別名,故引用在申明的時候必須給初始值,從此他們就建立了 不能離婚的婚姻關係 改變引用就會改變被引用的原變數 1 intmain 2 引用的實質就是const指標,是為了 看起來簡潔美觀設計的 翁愷說的 物件導向設計c 浙江大學 翁愷 國家精品課程 附源 稍後繼續,敬請期待.相同點 都...

git詳細學習

git config global user.name 你的名字 git config global user.email 怎麼聯絡你 git init git初始化,生成.git資料夾 隱藏目錄,記錄你的操作 git status 檢視狀態 git add 檔名 把檔案提交到暫存區 或者是 直接 ...

zoo 詳細學習

leader是zookeeper集群的核心。事務請求的唯一排程者和處理者,保證集群事務處理的順序性 集群內部各個伺服器的排程者 處理客戶端非事務請求,以及 事務請求給leader伺服器 參與事務請求提議 proposal 的投票 客戶端的乙個事務請求,需要半數伺服器投票通過以後才能通知leader ...