C++快速入門+20201011

南京小湯包發表於2020-10-11

C++:物件導向
屬性 和 行為 / 封裝成類
1、封裝:把物件的屬性和方法結合成一個獨立的系統單位
2、抽象:對一類公共問題進行統一描述的過程(得到所有參與者的同意的協議)
3、繼承:子類物件擁有其基類相同的全部屬性和方法
4、多型:在基類中定義的屬性和行為被子類繼承後,可以具有不同的資料型別或者表現行為等特性
cout:是物件,輸出流物件console out(控制檯輸出),屬於basic_ostream類的物件,ostream類在iostream標頭檔案中定義。
print:函式
using namespace std;//名字空間//C++標準庫所使用的所有識別符號(即類、函式、物件等的名稱)都是在同一個特殊的名字空間(std)中來定義的。如果沒有這條指令,我們需要使用std::cout這樣的語法來呼叫輸出流物件。
支援過載:按照不同的方式使用同一個操作符
流物件cin:型別是istream,從使用者終端讀取資料
cin>>i; cin輸入操作符又稱為提取操作符。它一次從輸入流物件cin提取一個整數。
當使用者進行鍵盤輸入時,對應的字元將輸入到作業系統的鍵盤緩衝區中。
在while(cin>>i)中,表示式cin>>i返回輸入流物件本身
函式過載的實質就是用同樣的名字再定義一個有著不同引數但有著相同用途的函式。(人格分裂、多重身份。。。)
過載函式的特徵:函式名相同,引數型別不同(引數個數上不同,引數資料型別上不同)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

複雜資料型別

陣列
一個陣列可以把許多個同型別的值儲存在同一個變數名下,陣列仍需要被宣告為某一特定的型別:float,char,inttype name[x] int aa[10]
指標
對齊:浮點數型別從8開始儲存而不是5,變數型別是根據它們的自然邊界進行對齊的
記憶體對齊,檔案對齊/.exe 和 dll檔案(動態連結庫)
定址:對變數進行索引1、通過變數名2、通過地址
取址:&,獲得變數的地址 int var = 123 std::cout<<“Address is:”<<&var;
結構

2.1變數和賦值

C++是對大小寫敏感的語言
1、應該為一個變數分配多大的記憶體位置
2、用哪種編碼方式將變數的值表示為一連串0和1
宣告時初始化變數
int const = 0,limit = 10
double distance = 999.99
int const(0) , limit(10)
double distance(999.99)

2.2輸入和輸出

“\n”和endl含義相同,但用法稍有區別:\n必須放到雙引號內,endl則不能。
輸出double型別的值----輸出幾位小數
cout.setf(ios::fixed);
cout.setf(ios::snowpoint);
cout.precision(2)
。。。。。
'A’是char值,可存貯到char型別的變數中
"A"是字串
C++只允許在算術表示式中使用圓括號來指定運算順序

2.4簡單控制流程

不要使用連續不等式
if(x<y<z)
正確:if(x<y)&&(y<z)

2.5程式風格

要標記一個不能更改的變數,在變數宣告之前新增const

3.1布林表示式

優先順序規則
一元操作符+,-,++,–,!
二元算術操作符×,/,%
二元算術操作符+,-
布林運算<,>,<=,>=
布林運算==,!=
布林運算&&
布林運算||
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
將非0的數視為true,將0視為false

else虛懸問題,else會與最近的if配對

3.3C++迴圈語句

++number:先遞增再返回值
number++:先返回值再遞增
for語句裡全是 “ ;”

4.1自頂向下設計

4.4過程抽象

黑盒原則//過程抽象原則//資訊隱藏

4.5作用域和區域性變數

在函式主體中宣告的變數區域性於該函式
全域性變數和全域性常量:在所有函式主體之外,也在main()部分之外
過載時,函式定義必須使用不同數量的形參

5.1void函式

1該函式不返回任何值
2return;

5.2傳引用引數

5.3使用過程抽象

所有函式宣告都放到main函式之前,所有函式定義都放到main函式之後

6.1流和基本檔案I/O

6.2流I/O工具

ios::fixed 不用e計數法寫浮點數
ios::scientific 用e計數法寫浮點數
ios::showpoint 顯示小數點和尾隨的0
ios::showpos 正整數之前會輸出一個正號
ios::right 右對齊width
ios::left 左對齊width
ifstream 型別的流可通過呼叫成員函式open連線到檔案。之後可從檔案讀取輸入
ofstream 型別的流可通過呼叫成員函式open連線到檔案。之後就可將輸出傳送到檔案。
應使用成員函式fail檢查open函式呼叫是否成功
物件是關聯了函式的變數。這些函式稱為成員函式。類是其變數為物件的一種型別。such as 一個流是一個物件,而ifstream 和 ofstream是類
呼叫物件的成員函式時
///Calling_object.Member_Function_Name(Argument_List);
///假定cout流是呼叫物件(Call_Object),precision是成員函式(Member_Function_Name)對
///該成員的呼叫可以這樣寫cout_precision(2)
流的一些成員函式(比如width,setf和precision)可用於格式化輸出
每個輸入流都有名為get的成員函式,用於讀取一個字元輸入;get不會忽略空白字元。每個輸出流都有名為put的成員函式,用於將一個字元寫到輸出流。
成員函式eof測試是否抵達輸入檔案末尾,eof適合文字處理,處理資料另究