C 四個預設成員函式 運算子過載

2021-08-03 06:01:23 字數 2617 閱讀 9581

1   (1)類的定義

在c++中,用「類」描述「物件」,所謂的物件是指現實世界中的一切事物。

類是建立物件的模板,乙個類可以建立多個物件,每個物件都是類的乙個具體

例項,擁有類的成員變數和成員函式。

乙個簡單的類定義:

class student

};

(2)訪問限定符

宣告了對類的外部介面,所有來自外部的訪問通過介面進行。

private:

只允許本類的成員函式來訪問,類外部的訪問都是非法的。

protected:

介於公有和私有型別之間,對除本類及派生類以外的類不可訪問。 注:

a.public成員可從類外部直接訪問,private/protected成員不能從類外部直接訪問。

b.每個限定符在類體中可使用多次,它的作用域是從該限定符出現開始到下乙個限定符之前或類體結束前。

c.類體中如果沒有定義限定符,則

預設為私有的。

d.類的訪問限定符體現了物件導向的

封裝性。

3)物件導向封裝性

封裝是實現資訊隱蔽的一種技術,其目的是使類的定義和實現分離。

4)類例項化物件

a.類只是乙個模型一樣的東西,限定了類有哪些成員,定義出乙個類並沒有分配實際的記憶體空間來儲存它。

b.乙個類可以例項化出多個物件,例項化出的物件占用實際的物理空間儲存類成員變數。

2   四個預設成員函式

1)建構函式

私有成員變數要對它們進行初始化,必須用乙個公有成員函式進行,同時這個函式應該有且在

定義物件時

自動執行一次,這時呼叫的函式稱為

建構函式。

建構函式是特殊的

成員函式

,有如下特徵:

a.函式名與類名相同。

b.無返回值。

c.物件構造(物件例項化)時系統自動呼叫對應的建構函式。

d.建構函式可以過載。

e.建構函式可以在類中定義,也可在類外定義。

f.如果類定義中沒有給出建構函式,則c++編譯器自動產生乙個預設的建構函式,但只要我們定義了乙個建構函式,系統就不會自動生成預設的建構函式。

g.無參的建構函式

和全預設的建構函式

都認為是預設建構函式,並且

預設的建構函式只能有乙個。

定義乙個date類

2)拷貝建構函式

建立物件時使用

同類物件

來進行初始化,這時所用的建構函式稱為

拷貝建構函式

,拷貝建構函式是特殊的建構函式。

拷貝建構函式的 特徵:

a.拷貝建構函式是乙個

建構函式的過載

。b. 拷貝建構函式的引數必須使用引用傳參,使用傳值方式會引發無窮遞迴呼叫。

c.若未顯示定義,系統會預設預設的拷貝建構函式。預設的拷貝建構函式會依次拷貝類成員進行初始化。

3)析構函式

當乙個物件的生命週期結束時,c++編譯系統會自動呼叫乙個成員函式,這個

特殊的成員函式

即析構函式。

特點:a.析構函式在類名前加上字元~

b.析構函式無引數無返回值。

c.乙個類有且僅有乙個析構函式,若未顯示定義,系統會自動生成預設的析構函式。

d.物件生命週期結束時,c++編譯系統自動呼叫析構函式。

e.析構函式體內主要完成清理工作。

4)賦值操作符過載

賦值運算子的過載是對乙個已存在的物件進行拷貝賦值。

編譯器的處理

5)運算子過載

operator+合法的運算子構成函式名   例如:operator=

過載運算子以後,不能改變運算子的優先順序/結合性/運算元個數

注:5個c++不能過載的運算子   .*/::/sizeof/? :/.

四個預設成員函式和運算子過載

1.類的定義 在c 中,用 類 描述 物件 所謂的物件是指現實世界中的一切事物。類是建立物件的模板,乙個類可以建立多個物件,每個物件都是類的乙個具體例項,擁有類的成員變數和成員函式。類的組成 資料 成員變數 和程式 成員函式 例子 class 1 建構函式 私有成員變數要對它們進行初始化,必須用乙個...

四個預設成員函式和過載運算子

1.類和物件的基礎知識 類實際上是對某種型別的物件變數和方法的原型,類是從一些具有相同屬性或功能的具體例項,抽象出共有的一些屬性的,自定義抽象資料型別。public成員可從類外部直接訪問,private protected不能從類外部直接訪問,每個限定符在類體中可以使用多次,類體中如果沒有定義限定符...

c 類和物件 四個預設成員函式 運算子過載

類的宣告和定義 c 中類的定義一般分為類的宣告部分和類的實現部分。類的宣告部分用來說明該類中的成員 資料成員,成員函式 告訴使用者 幹什麼 類的實現部分用來定義成員函式,該函式用來對資料成員進行操作,告訴使用者 怎麼做 類定義的形式 class 類名 類的宣告部分 各成員函式的實現 類的實現部分 實...