程式設計師教程-10章-C++程式設計
本來這章是不打算寫了的,畢竟自己學的是JAVA,C++就不想看了,但畢竟還有一點時間,就把C++也看一下吧
目錄結構
10.1 C++程式基礎
10.1.1 資料型別
1 基本資料型別
2 常量和變數
3 複合資料型別
4 引用和指標
10.1.2 運算子、表示式和語句
10.1.3 基本輸入/輸出
10.1.4 函式
1 函式定義和宣告
2 函式呼叫
3 行內函數
4 函式的過載
10.1.5 類與物件
1 類
2 物件
3 靜態成員
4 this指標
5 友元
10.2 繼承與多型
1 繼承
2 多型
10.3 異常處理
10.4 標準庫
10.4.1 I/O流庫
10.4.2 string
1 宣告string物件
2 string物件的操作
10.4.3 STL
1 演算法
2 容器
3 迭代器
10.4.4 vector
1 初始化vector物件
2 vector物件的運算
C++語言是對C語言的擴充套件和超集,因此同時支援過程式和麵向物件的程式設計泛型
10.1 C++程式基礎
C++程式基礎包括資料型別(基本內建型別、複合型別)、輸入輸出處理、語句、函式以及類等
10.1.1 資料型別
1 基本資料型別:繼承C,擴充套件了布林型別(bool)和寬字元型別(wchar_t)、UNICODE字元型別char16_t和char32_t
2 常量和變數
1)字面值常量
2)左值和右值:左值的實質是記憶體位置,右值的實質是數值,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊
3)定義常量:可以用巨集定義和const定義常量
3 複合資料型別:C++的列舉、結構體、共同體和陣列都是複合資料型別
4 引用和指標:引用為物件提供了另一個名字(別名),通過將宣告符寫成“&d"的形式來定義引用型別,其中"d"是宣告的變數名
引用與指標不同:(1)不存在空引用;(2)一旦引用被初始化為一個物件,就不能再引用另一個物件;(3)引用必須在建立時被初始化
10.1.2 運算子、表示式和語句
C++繼承了C語言的算術運算子,關係運算符,邏輯運算子,位運算子,賦值運算子和其他運算子,擴充了::,new,delete運算子,還支援對運算子的過載機制
10.1.3 基本輸入/輸出
C++使用稱為iostream的I/O流庫,還有iomanip,用於格式化
1)輸出:cout<<d;
2)輸入:cin>>d;
3)格式控制:精度和寬度
10.1.4 函式:庫函式和自定義函式
1 函式的定義和宣告:略
2 函式呼叫:略
3 行內函數:對於行內函數,編譯器是將其函式體放在呼叫該行內函數的地方,不存在普通函式呼叫時棧記錄的建立和釋放開銷
4 函式的過載:只要引數表中引數個數或型別不同,就視為不同的函式
10.1.5 類與物件
物件是人們要進行研究的任何事物,從最簡單的整數到複雜的機器都可看作物件。具有相同或相似性質的物件的抽象就是類
1 類:有兩種型別的成員:資料成員,成員函式
類成員有如下3種不同的訪問許可權:公有,私有,保護
2 物件:物件是類的例項
1)物件的建立:類的變數稱為物件
2)物件的操作:.或->
3)建構函式:預設建構函式,建構函式的過載
4)解構函式:~
3 靜態成員:static,靜態資料成員,靜態成員函式 ::
4 this指標:指向類的物件
5 友元:在C++的一個類定義中,可以指定某個全域性函式、某個其他類或某個其他類的成員函式來直接訪問該類的私有和保護成員,它們分別稱為友元函式,友元類和友元類函式
10.2 繼承和多型
1 繼承:實現程式碼複用
2 多型:一個介面,多個方法:方法的重置或實現;純虛擬函式
10.3 異常處理
異常是程式可能檢測到的執行時刻不正常的情況。
try、catch、finally和throw是異常處理的關鍵字,它們配合起來工作
10.4 標準庫
分為標準函式庫和類庫兩部分。標準函式庫包含了所有的C標準庫,類庫定義了一些常見操作的類,如I/O類,string類,數值類和STL的容器類、演算法、函式物件、迭代器、分配器,以及異常處理類
10.4.1 I/O流庫:iostream
10.4.2 string:C++的字串標準庫型別是重新定義的類string,使用string時不必再擔心空間大小與字串長短等問題
1 宣告string物件:包含標頭檔案<string>,string str
10.4.3 STL:(Standard Template Library)標準模板庫:是一系列軟體程式碼的統稱,其程式碼從廣義上分為三類:演算法,容器和迭代器
STL被組織成下面的13個頭檔案:<algorithm> <deque> <functional> <iterator> <vector> <list> <map> <memory> <numeric> <queue> <set> <stack> <utility>
1 演算法:主要由標頭檔案<algorithm> <numeric> <functional>說明
2 容器
3 迭代器:由標頭檔案<utility> <iterator> <memory>說明
10.4.4 vector
簡單來說,vector是一個能夠存放任意型別資料的動態陣列
1 初始化vector物件