建構函式:
1、類通過乙個或幾個特殊的成員函式來控制其物件的初始化過程。
2、建構函式的任務是初始化類物件和資料成員,無論何時只要類的物件被建立,就會執行建構函式。
3、沒有返回型別。
4、建構函式可以過載(不同的建構函式之間必須在引數數量或引數型別上有所不同)
5、不同於其他成員函式,建構函式不能被宣告為const的。當我們建立類的乙個const物件(必須初始化)時,直到建構函式
完成初始化過程,物件才能真正的取得其「常量」屬性。因此,建構函式在const物件的建構函式中可以向
其寫值。
6、預設建構函式無須任何實參。只有當類沒有宣告任何建構函式時,編譯器才會自動地生成預設建構函式。
建構函式初始值列表:
負責為新建立的物件的乙個或幾個資料成員賦初值。
當某個資料成員被建構函式初始值列表忽略時, 他將以與合成預設建構函式相同的方式隱式初始化。
7、建構函式初始值列表:
負責為新建立的物件的乙個或幾個資料成員賦初值。
若建構函式初始值列表是空的,但是由於執行了建構函式體,所以物件的成員任然能被初始化。
沒有出現在建構函式初始值列表中的成員將通過相應的類內初始值(如果存在的話)初始化,或者執行預設初始化。
類中資料成員是常量、引用必須顯示的被初始化。
建構函式初始值列表只說明用於初始化成員的值,而不限定初始化的具體執行順序。
成員的初始化順序與它們在類定義中的出現順序一致。
封裝:
8、封裝實現了類的介面和實現的分離,隱藏了類的實現細節,使用者只能接觸到類的介面。
優點:
隱藏類的實現細節;
讓使用者只能通過程式規定的方法來訪問資料;
可以方便的加入訪問控制語句,限制不合理操作;
類自身的安全性提公升,只能被訪問不能被修改;
類的細節可以隨時改變,不需要修改使用者級別的**;
友元:
9、友元—類允許其他類或者函式訪問其非共有成員,只要在本類內,加一條類前或者函式前有friend關鍵字(最前方)的宣告即可。最好在類的開始或結尾集中宣告友元。
優點:可以靈活地實現需要訪問若干類的私有或受保護成員才能完成的任務,
便於與其他不支援類的語言進行混合程式設計;通過使用友元函式過載可以更自然第使用c++語言的i/o流庫。
缺點:乙個類將對非公有成員的訪問權授予其他的函式或類,
會破壞該類的封裝性,降低該類的可靠性和可維護性。
類之間的友元關係:
如果乙個類指定了友元類,則友元類的成員函式可以訪問此類包括非公有成員在內的所有成員。
class
screen;
成員函式作為友元:
class
screen;
**如果使用友元函式必須在提前宣告(為了避免不必要的麻煩)。
類的作用域:
在類的外部定義的函式,必須宣告類作用域,其函式名和返回型別都需要進行宣告。
C 11 標準及知識點的記錄 1
1 constexpr和常量表示式 常量表示式 const expression 是指值不會改變並且在編譯過程就能得到的計算結果。c 11 新標準規定,允許將變數宣告為constexpr型別以便由編譯器來驗證變數的值是否乙個常量表示式。宣告為constexpr的變數一定是乙個常量,而且必須用常量表示...
c 學習總結 幾個c 11的知識點
auto關鍵字 1.概念 auto不再是乙個儲存型別指示符,而是作為乙個新的型別指 示符來指示編譯器,auto宣告的變數必須由編譯器在編譯時期推導而得.注意 auto是乙個根據給的資料確定型別的符號,可以說他不是一種 型別 的申明符,它更像是乙個佔位符,佔著位置,給句位置上的資料給型別的符號,所以一...
C 知識點記錄
1 decimal 表示128位資料型別 同浮點型相比,decimal型別具有更高的精度和更小的範圍,使其更適合於財務與貨幣運算。2 動態程式集 沒有被編譯至主程式,而是主程式在執行時動態呼叫或者生成的程式集。c 引導程式集的機制 3 excel的讀取 優點 將excel直接當做資料來源處理,通過s...