面向對象

說明:
接下來的幾篇文章其實是我的讀書筆記,所讀的書是錢能的C++程序設計。之所以選擇這本書,首先,符合中國人的習慣;其次,涵蓋了C++語言的面;最後,入門讀物。
我計劃接下來六篇文章把C++中的面向對象的類、對象生滅、繼承、多態、抽象類、模板六塊內容進行總結。其實我學習C++不久,這些文章內容都是從書上或其它資料上參考整理而來的,歡迎大家批評指正!
類:
1,只要是在類定義中實現的成員函數,就有默認的內聯性質。

2,類定義體的編程參考意義有條件的內聯,使得類定義體設計時,應儘量將成員函數定義寫到類定義的外部去。

3,默認內聯:直接把方法定義寫在類定義中;
   顯式內聯:實現時添加inline聲明,並與類定義寫在同一文件。

4,能使用常成員函數就儘量使用常成員函數;
聲明:ret-type functionName(params list) const;
定義:ret-type className::functionName(params list) const;

5,C++把操作符也看成了和函數一樣的實體了。

6,操作符重載不是必要的,而是爲了人性化的描述程序,讓對程序有更好理解而採取的方法。

7,操作符重載的性質:
①拒絕創新;
    不能創建新的操作符。
②個別重載限制;
    操作符sizeof、typedef、作用域操作符(::)、點操作符(.)、? :操作符不允許重載。
③優先級和結合性不變;
④操作數個數不變;
⑤專門處理對象;
    原生數據類型的操作符含義已有定義,不允許改變(如:不允許將兩個浮點數進行求餘%運算)。只能對自定義類型進行操作符重載,即至少得有一個操作數爲自定義類型。
⑥忌意義相左。
    操作符重載之後的行爲要與其本身名字相匹配,以便於對其的使用。

8,經驗之談:參數爲類類型,用引用型;參數爲內部數據類型,不用引用型。

9,操作符重載之增量操作符
前增量與後增量的差別:
重載時的情況:
FC:




10,成員操作符
FC:




11,訪問控制
1,書摘
    關於訪問控制的介紹:
    類進行訪問控制的合理性:
FC:




2,頭一次聽說的概念
類定義作用域

類作用域


    也因此,成員函數內部調用成員函數,捆綁對象就見外了。捆綁對象是對使用者來說的,在類內部無需如此客套。--->延伸:

12,類概念的延伸

13,靜態成員變量


14,靜態成員函數
形如:
    靜態成員函數並非必須捆綁對象才能實現調用,可以通過類名與類作用域運算符實現調用。因此,除非靜態成員函數的參數中包括類對象,否則不能直接使用私有成員變量。

15,友元
問題出現背景:
    而使用普通函數通過類的成員函數來訪問對象的數據成員這種方法會帶來頻繁的成員函數調用問題。引起性能問題,怎麼解決?
使用友元(Friend):
       使用友元之後,就可以直接訪問對象的私有成員,從而免去調用成員函數,起到提高性能的效果。
       友元使用方法如下:
       在類中通過friend關鍵字聲明要訪問私有成員的函數,則在該函數的實現中就可以直接訪問類的私有成員了。
友元的意義:

友元使用FC:
       見錢老的書中①矩陣與向量乘法;②操作符“<<”重載。
//////////
2014/10/23
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章