C 類和物件特性

2021-10-06 08:42:07 字數 1762 閱讀 8100

類是使用者自定義的型別,表明某一類物件的共性和特徵。

類是一種抽象型別,物件是具體的。

類的定義:

class 類名

類成員的訪問屬性:public、protected、private (預設為private)

其中,公共資料成員(public)在類的外部可直接訪問。

物件的宣告和訪問:

class

bird

;void bird::

setcolor

(char ch)

物件的宣告:

類名 物件名;

如bird bird1;

物件的訪問:

(1) 對於公有成員

在類的外部可使用 類名.成員變數/函式 直接訪問。如bird1.*** = 『m』;

(2) 對於私有成員

在類的外部是不可訪問的,只有類和友元函式可以訪問私有成員。

可在public區域定義相關函式,在類外部呼叫這些函式來設定私有成員的資料。

如 bird1.setcolor(『b』);

(3) 對於保護成員

在類的外部也是不可訪問的。除了類和友元函式可以訪問外,在派生類中也是可訪問的。

物件導向的3大特性

(1)封裝性

將部分**和資料封裝在一起,隱藏這部分的屬性和實現細節,僅對外公開介面,從而保證資料安全,避免被不可信的人篡改。

可通過建立類來支援封裝和資料隱藏。

(2)繼承性

表現類之間的關係,它可減少**和資料的冗餘,提高效率。

① 基類和派生類

定義形式:

class 派生類名稱: 訪問修飾符 基類名稱

;

(未使用訪問修飾符時,預設為private)

② 訪問控制

派生類可訪問基類的public成員和protected成員。若基類成員不想被派生類的成員函式訪問,則應在基類中宣告為private。

③ 繼承型別(通過訪問修飾符指定)

基類public

protected

private

公有繼承

public

protected

private

保護繼承

protected

protected

private

私有繼承

private

private

private

④ 多繼承

即乙個子類有多個父類,繼承了多個父類的特性。

定義形式:

class 派生類名稱:繼承方式1 基類名1,繼承方式2 基類名2,…

;

(3)多型性

即多種形態:一介面,多方法。

多型性允許將子類型別的指標賦值給父類型別的指標,它在c++中是通過虛函式實現的。

虛函式

虛函式是在基類中用關鍵字virtual宣告的函式。在派生類中重新定義基類中定義的虛函式時,會告訴編譯器不要靜態鏈結到該函式。

這樣便可根據所呼叫物件的型別來選擇呼叫的函式,即動態鏈結。

參考:

c 類和物件特性 友元

今天介紹下友元,首先介紹為什麼需要友元,友元解決什麼樣的問題。我們知道物件導向特性中封裝是將內部細節進行封裝,包括內部的私有變數,如果外部想訪問私有變數,就需要提供公有的函式進行操作。解決的問題 在外部函式或者是類中,想訪問某個類a的內部私有成員變數或者函式,但是類a又不想提供額外的public的方...

C 之類和物件 封裝 類和特性

public 公共 類內可以訪問,類外可以訪問 protected 保護 類內可以訪問,類外不可以訪問 兒子可以訪問父親中的內容 private 私有 類內可以訪問,類外不可以訪問 兒子不可以訪問父親中的內容 class person 可寫,並且能檢測資料的有效性 string getname 可讀...

類和物件的特性

1 在物件導向的程式中,除主函式外,其他函式基本上都是出現在類中,只有通過類才能呼叫類中的函式。2 物件導向的4個主要特點 抽象 封裝 繼承 多型。3 基於物件設計和物件導向程式設計統稱物件導向程式設計.4 物件是構成系統的基本單位。乙個物件有兩個特徵 一是靜態特徵,比如班級的學生人數 所在教室以及...