第8章 運算子過載
1、operator後緊跟要過載的運算子,例如過載「+"運算子函式名字為operator+
2、乙個運算子被過載以後,它原先的含義不會改變,扔可以用。使用時系統會判斷用這個運算子的過載還是原含義。
即: 運算子過載不會改變內建型別表示式中的運算子含義,只有在至少乙個運算元是使用者自定義型別物件時,才有可能呼叫該類中過載的運算子。
3、運算子函式的引數個數取決於一下兩個因數
運算子的運算元個數,即是一元運算子還是二元運算子
運算子函式是成員函式還是非成員函式。
(當運算子函式是成員函式時,若它是一元運算子函式則無需提供引數,類本身成員為引數,若為二元運算子,則需要提供乙個引數作為右引數,類本身成員是左引數。
4、運算子函式呼叫
x operator+(const x&left,const x&right)
x data1,data2;
data1+data2;//表示式中的呼叫
operator+(data1,data2);//等價的直接函式呼叫
data1.operator+(data2);//成員函式呼叫
5、不能過載的運算子
作用域解析符::
成員選擇符.
成員指標間接引用符.*
條件運算子?:
邏輯與&&
邏輯或‖
逗號,取位址符&
6、可以過載的運算子
一元運算子+ - * ++ –
算數運算子+ - % /
關係運算子 == != > <
位運算 << >>
賦值運算 = += -= /=
其他運算子 {}
7、過載輸入輸出
再類裡用友元宣告函式,類外定義
友元宣告:
friend istream& operator>>(istream&in,類名&變數名);
friend ostream&operator<<(ostream&out,類名&變數名);
類外定義
istream &operator>>(istream&in,類名&變數名)
ostream&operator<<(ostream&out,類名&變數名)
第9章 組合與繼承
1、組合,簡單來說就是在乙個類裡套另乙個類,平常打**時,多是乙個操作類裡含有資料類,資料類在操作類裡用vector存。
2、在c++中,被繼承的已有類稱為基類,繼承得到的新類稱為派生類。派生類可以再被繼承,這樣構成的層次結構稱為繼承層次。
3、繼承的語法形式如下:
class 派生類名字 : 訪問限定符 基類名字
;4、訪問限定符
public 公有
private 私有
protected 保護
5、如果不指定,對class關鍵字定義的類,預設為private;如果是struct關鍵字定義的類,則預設為public。
6、乙個派生類繼承乙個基類後,基類中的成員,不需要在派生類中重複宣告,將會在派生類中直接繼承,如果在派生類中重複宣告乙個基類的函式,則表示派生類中要重新實現這個操作
7、無論訪問限定符是公有、私有、保護,都不能繼承基類中私有成員,不能呼叫私有成員,可以用get、set函式間接呼叫
8、派生類繼承基類,不繼承私有成員和析構函式、建構函式。
9、多重繼承
class 派生類名字 : 訪問限定符1 基類名字1,訪問限定符2 基類名字2,訪問限定符3 基類名字3,…
10、在派生類中寫乙個和基類中函式名相同,引數型別相同,引數個數相同,返回值型別相同的函式,叫做覆蓋。
如果寫乙個函式名相同,引數不同,叫做過載。
11、如果用乙個基類的指標指向派生類,呼叫派生類中的覆蓋函式,則出現的結果等於基類中這個函式的結果。
第10章 虛函式與多型性
1、宣告虛函式: virtual
vittual 返回型別 成員函式名(參數列);
2、virtual只能在類內的成員函式宣告之前,不能用於類外的函式定義,除了建構函式外,任何非靜態成員函式都可以是虛函式。
3、派生類中可以重定義基類的虛函式,這稱為覆蓋,在派生類中覆蓋基類虛函式要求返回型別、函式名、引數個數、引數順序都一樣才行。
4、有了虛函式後,用基類的指標指向派生類,呼叫派生類中覆蓋的基類虛函式的函式,得到的結果,不再是基類中虛函式的結果,而是派生類中此函式的結果,這也被稱為多型。
5、可用override來標記派生類中的虛函式,使得編譯器可以檢測出,對虛函式覆蓋還是過載的錯誤。
使用方法 在基類中虛函式無作為
在派生類中的此函式宣告後加上override
例:struct b
;struct d:b;
6、虛函式實現多型的步驟:
在基類中講需要多型呼叫的成員函式宣告為virtual
在派生類中覆蓋基類的虛函式,實現各自需要的功能
用基類的指標或引用指向派生類物件,通過基類指標或引用呼叫虛函式。
7、基類中定義虛函式,派生類中覆蓋虛函式
這樣呼叫時才能用派生類中的函式
8、基類的析構函式可被派生類覆蓋,但是不用再派生類中寫乙個同名的析構函式。派生類中的此析構函式還是派生類的名字,不是基類析構函式的名字。
《構建之法》第8 9 10章
第八章 需求分析 軟體開發團隊就是為了使用者著想,於是總會在程式專案開發前進行專案的需求分析 本章節講述軟體需求的4個步驟,1 獲取和引導需求 2 分析和定義需求 3 驗證需求 4 在軟體產品的生命週期中管理需求 在軟體工程中分析軟體需求需要考慮相關者的利益關係,例如使用者 顧客 市場分析師 監管機...
構建之法第8,9,10章
第八章主要講的是軟體需求和分析,然而軟體的需求要分為以下幾步 1.獲取和引導需求,講的是軟體工程團隊需要找到軟體利益相關的人員,了解和分析他們對軟體的需求。2.分析和定義需求,是軟體團隊對各種需求進行分析和調整,從各種角度對需求量化。3.驗證的需求,講的是軟體工程團隊要跟相關者溝通,實時更近他們需求...
閱讀《構建之法》第8,9,10章
第八章 需求分析 本章節講述軟體需求的4個步驟,講述了9種使用者調研方法,nabcd模型和四象限方法,我覺得使用這幾個方法分析出來比較的具體,比自己空想要好,因為使用者的需求才是我們開發軟體的方向,如果方向錯了,只能是白做工。提出的問題 如果使用者需求很多很多,我們應該全部滿足,還是側重滿足?第九章...