《c 語言導學》 2 3 類

2021-09-23 14:44:15 字數 1002 閱讀 3784

上面這種將資料與其操作分離的做法有其優勢,比如我們可以非常自由地使用它的資料部分。不過對於使用者自定義型別來說,為了將其所有屬性捏合在一起,形成乙個「真正的型別」,在其表示形式和操作之間建立緊密的聯絡還是很有必要的。特別是,我們常常希望自定義的型別易於使用和修改,希望資料具有一致性,並且希望表示形式最好對使用者是不可見的。此時,最理想的做法是把型別的介面(所有**都可使用的部分)與其實現(對外部不可訪問的資料具有訪問許可權)分離開來。在c++中,實現上述目的的語言機制稱為類(class)。類含有一系列成員(member),可能是資料、函式或者型別。類的public成員定義了該類的介面,private成員則只能通過介面訪問。例如:

總的來說,vector物件是乙個「控制代碼」,它包含指向元素的指標(elem)以及元素的數量(sz)。在不同vector物件中元素的數量可能不同(本例是6),即使同乙個vector物件在不同時刻也可能含有不同數量的元素(見4.2.3節)。不過,vector物件本身的大小永遠保持不變。這是c++語言處理可變數量資訊的一項基本技術:乙個固定大小的控制代碼指向位於「別處」(如通過new分配的自由儲存,見4.2.2節)的一組可變數量的資料。第4章的主題就是學習如何設計並使用這樣的物件。

在這裡,我們只能通過vector的介面訪問其表示形式(成員elem和sz)。vector的介面是由其public成員構成的,包括vector()、operator()和size()。2.2節的read_and_sum()示例可簡化為:

與所屬類同名的「函式」稱為建構函式(constructor),即它是用來構造類的物件的。因此建構函式vector()替換了2.2節的vector_init()。建構函式有乙個特性與普通函式不同,它確保只用於初始化類的物件,因此定義乙個建構函式可以解決類變數未初始化問題。

vector(int)規定了vector物件的構造方式,此處意味著需要乙個整數來構造物件,這個整數用於指定元素的數量。該建構函式使用成員初始值列表來初始化vector的成員:

C語言指標導學 後記

rel file list href file c 5cdocume 7e1 5cporsche 5clocals 7e1 5ctemp 5cmsohtml1 5c01 5cclip filelist.xml rel file list href file c 5cdocume 7e1 5cpors...

《c 語言導學》 1 4 函式

如果我們打算在c 程式中完成某些任務,最好的方式就是呼叫函式。要想準確描述某項操作的細節,把它定義成函式是最優選擇。需要注意的是 函式必須先宣告後使用。一條函式宣告語句需要完成三項任務 指定函式的名字 函式的返回值型別 如果有的話 以及要想呼叫該函式必須提供的實參數量和型別。例如 對於發生在編譯過程...

《c 語言導學》 1 2 程式

c 是一種編譯型語言。顧名思義,要想執行一段c 程式,需要首先用編譯器把原始檔轉換成目標檔案,然後再用聯結器把目標檔案組合成可執行程式。乙個c 程式通常包含多個源 檔案,簡稱為原始檔 source file 乙個可執行程式適用於一種特定的硬體 系統組合,不具可移植性。例如,mac上的可執行程式無法直...