一、類的介紹
類是屬於使用者自定義的資料型別, 並且該型別的資料具有一定的行為能力, 也就是類中說描述的方法。通常來說, 乙個類的定義包含兩部分的內容, 一是該類的屬性, 另一部分是它所擁有的方法。
二、類
1、類宣告:
class date;
在宣告之後,定義之前,只知道date是乙個類名,但不知道包含哪些成員。只能以有限方式使用它,不能定義該型別的物件,只能用於定義指向該型別的指標或引用,宣告(不是定義)使用該型別作為形參型別或返回型別的函式。
void test1(date& a){};
void test1(date* a){};
2、類定義
在建立類的物件之前,必須完整的定義該類,而不只是宣告類。所以,類不能具有自身型別的資料成員,但可以包含指向本類的指標或引用。
class xx//xx為類名
;//一般將類的資料成員設為私有的,以實現隱藏和封裝
而將類的成員方法設為公有的
①. 類名 需要遵循一般的命名規則(駝峰式命名);
②. public 與 private 為屬性/方法限制的關鍵字, private 表示該部分內容是私密的, 不能被外部所訪問或呼叫, 只能被本類內部訪問; 而 public 表示公開的屬性和方法, 外界可以直接訪問或者呼叫。
一般來說類的屬性成員都應設定為private, public只留給那些被外界用來呼叫的函式介面, 但這並非是強制規定, 可以根據需要進行調整;
③. 結束部分的分號不能省略。
注:類的成員預設是私有的,而結構體的成員預設是公有的。
3、隱含的this指標
成員函式具有乙個附加的隱含形參,即 this指標,它由編譯器隱含地定義。成員函式的函式體可以顯式使用 this 指標。
4、使用this指標
當我們需要將乙個物件作為整體引用而不是引用物件的乙個成員時。最常見的情況是在這樣的函式中使用 this:該函式返回對呼叫該函式的物件的引用。
三、建構函式
建構函式的名字與類名相同,沒有返回型別,乙個類可以通過函式過載定多個建構函式,建構函式的引數列表中含有乙個或多個需要進行初始化的資料成員。
date:: date(int y,int m,int d)
或者這樣定義
date:: date(int y,int m,int d):year(y),month(m),day(d){}//引數列表的形式
2.預設建構函式
預設建構函式是在未提供初始值時進行物件初始化的建構函式。
當乙個類沒有提供任何的建構函式時,編譯器會隱式地定義乙個預設建構函式。以date類為例,編譯器提供的預設建構函式的形式應該是如下的
date() {};
當建構函式中所有的引數都有預設值時,這個建構函式也是預設建構函式。例如:
date:: date(int y,int m,int d)
但是,當顯式地定義了建構函式後,編譯器便不會再提供預設建構函式。
成員被初始化的次序就是定義成員的次序,跟初始化列表中的順序無關。
4、類物件的成員的初始化
在類a的建構函式初始化列表中沒有顯式提及的每個成員,使用與初始化變數相同的規則來進行初始化。
類型別的資料成員,執行該型別的預設建構函式來初始化。
內建或復合型別的成員的初始值依賴於該類物件的作用域:在區域性作用域中不被初始化,在全域性作用域中被初始化為0。
四、複製建構函式
1、定義: 複製建構函式是一種特殊建構函式,只有1個形參,該形參(常用 const &修飾)是對該類型別的引用。
2、何時使用複製建構函式
兩種初始化的形式
對於內建型別,例如int, double等,直接初始化和複製初始化沒有區別。
對於類型別:
直接初始化直接呼叫與實參匹配的建構函式;
複製初始化先使用指定建構函式建立乙個臨時物件
然後用複製建構函式將那個臨時物件複製到正在建立的物件。
直接初始化比複製初始化更快。
五、析構函式
1.定義:建立物件時系統會自動呼叫建構函式進行初始化工作,同樣,銷毀物件時系統也會自動呼叫乙個函式來進行清理工作,例如釋放分配的記憶體、關閉開啟的檔案等,這個函式就是析構函式。(乙個類中有且只有乙個析構函式)
2.特點:
4.首先介紹c++建立物件的三種不同形式
前兩個都是在棧中分配記憶體,在棧中記憶體由系統自動的去分配和釋放
而使用new建立的指標物件是在堆中分配記憶體
當不需要該物件時,需要我們手動的去釋放否則會造成記憶體洩漏。
C 類 基礎知識
目錄3.2 複製建構函式 3.3 析構函式 4.類組合 class class name功能 用於在建立類時給類設定初值 形式note 在宣告中定義了預設引數時,實現中不能再指定預設引數。下面 執行會報錯 void func int x 0 void func int x 0 呼叫時機 預設建構函式...
C 類的基礎知識
類是物件導向程式設計的核心,是通過抽象資料型別方法實現的一種使用者自定義資料型別,它同時包含了資料和對資料進行操作的函式。利用類可以實現資料的封裝和隱藏。類是對某一類物件的抽象,而物件是某一種類的例項。類的定義 類的定義可以分為兩部分 說明部分和實現部分。說明部分說明類中包含的資料成員和成員函式,實...
C 類的基礎知識
類通常包括兩部分 類的內部實現和類的使用方式。當我們建立乙個類時,我們需要考慮去怎麼實現,使用的時候不需要考慮細節,不用想怎麼去實現。首先我們給出乙個簡單的類 class test int getval private int v int test getval 類裡面包含了量種不同的東語法,乙個是...