C 類與物件總結

2021-09-25 14:31:31 字數 2359 閱讀 3063

類似與c語言中的結構體,但是在c語言中結構體只能定義變數,c++中結構體不但可以定義變數,也可以定義函式,但是在c++當中人們更喜歡稱之為類。同時在c++當中用class代替結構體中的struct。

類的定義

class為定義類的關鍵字,classname為類的名字,{}中為類的主體,注意類定義結束時後面分號。

類中的元素為類的成員,類中資料稱為類的屬性或者稱之為成員變數;類中的函式稱為類的方法或者稱為類的成員函式。

類的定義方式

訪問限定符

c++實現封裝的方式:用類將物件的屬性與方法結合在一塊,讓物件更加完善,通過訪問許可權選擇性的將其介面提供給外部的使用者使用。

類的例項化

用類進行創造物件的過程,稱為類的例項化。

類的大小

類的大小為成員變數大小之和(但需要進行位元組對齊),成員函式不計算在類大小中,如果類中沒有成員變數,編譯器會為類分配一定的空間,vs 、gcc為其分配1個位元組,不同的編譯器,會分配不同的大小。

類的位元組對齊類似與c語言中結構體位元組對齊

this指標

提出問題:

classname類建立兩個物件,當c1呼叫set函式時,如何知道設定c1的物件。

c++中提供this指標解決這類問題:

即:c++編譯器給每個「成員函式「增加了乙個隱藏的指標引數,讓該指標指向當前物件(函式執行時呼叫該函式的物件),在函式體中所有成員變數的操作,都是通過該指標去訪問。只不過所有的操作對使用者是透明的,即使用者不需要來傳遞,編譯器自動完成。

this指標的特性

建構函式

建構函式為乙個特殊的成員函式,名字與類名相同,編譯器自動呼叫,在每個物件的生命週期裡面只呼叫一次。建構函式主要負責對物件進行初始化。

建構函式特性

date ()     //預設建構函式也稱為無參的建構函式

如果通過無參建構函式建立物件時,物件後面不用跟括號,否則就成了函式宣告

析構函式

析構函式的功能剛好與建構函式功能相反,析構函式不是完成物件的銷毀,區域性物件銷毀工作是由編譯器完成的。而物件在銷毀時會自動呼叫析構函式,完成類資源的一些清理工作。

析構函式時乙個特殊的成員函式

特徵

拷貝建構函式

拷貝建構函式是用已經存在類型別物件建立新物件。

運算子的過載

在數學結構中,我們知道有+ - * /幾種簡單的運算子,在c++當中,為了方便運算,也會將數**算符進行過載。

如果不進行運算子過載就直接對其進行操作,一般情況下會直接錯誤。

賦值運算子過載

class date

date(const date& d)

date& operator=(const date& d) }

private:

int _year;

int _month;

int _day;

};

const成員const修飾類的成員函式將const修飾的類成員函式稱之為const成員函式,const修飾類成員函式,實際修飾該成員函式隱含的this指標,表明在該成員函式中不能對類的任何成員做出修改

C 類與物件總結

1.以上是對本章知識的大致梳理,下面通過我自己在程式設計中遇到的問題再次總結。私有成員必須通過get 函式訪問嗎?能不能直接呼叫?建構函式 要不要寫出引數?在類中建構函式必須要有形參,可以給定預設值引數,也可以不給。物件初始化可以通過物件.引數 也可以通過物件.set 修改預設值。使用內聯示例 1 ...

類與物件總結

一般的資訊管理系統多是需要兩種類 資料類和操作類 資料類 提供實際所需的各種資料 操作類 實現實際操作功能 多為增刪查改 乙個成員函式實現乙個具體功能 資訊管理系統開發基本步驟 1思考分析系統所需各種資料,並設計資料類 前提 2了解系統要實現各種功能,並設計操作類 3除錯程式 滾雪球法,一步一調。最...

類與物件總結

一 類的定義。具有相同性質和功能的東西構成的集合稱為類。類是抽象的,當屬性賦給具體值,方法有具體內容時,才能成為物件,物件是類中可操作的具體化資料。類定義的一般形式 class 類名 public 公有段資料成員和成員函式 類內類外均可見 protected 保護段資料成員和成員函式 只在類內和該類...