2021 3 17 C 中的類與物件

2021-10-22 22:38:23 字數 2775 閱讀 8396

**目錄:類的組合及其函式

類和物件都是比較不好理解的東西,這裡把乙個手錶記為乙個類,那麼可以將這個類裡面的時鐘、分鐘、秒鐘叫作類裡面的物件。說實話,還真不一定能理解。??

class

clock

;//注意結尾的分號喲。

這就像c語言的結構,但是c++建立起了保護機制,沒有特定訪問許可權,是不能訪問private裡的資料的。可以直接訪問公有,但必須通過公有成員函式或者友元函式來訪問私有成員。(這樣使程式設計師不必知道資料的表示,方便於維護)

注;其實private是可以省略的,因為這是類物件的預設訪問控制許可權。

建構函式是伴隨物件建立的時候,一起產生的,主要目的是給物件乙個初始值,也就是給時鐘、分鐘乙個初始值。(若沒有建構函式,編譯器同樣也會自動生成乙個預設建構函式,雖啥也沒有,引數和函式體都為空)

class

clock

;clock::

clock()

:hour(0

),minute(0

),second(0

)//預設建構函式的實現

clock::

clock()

:hour

(h),

minute

(m),

second

(s)//帶參的建構函式。

intmain()

注:建構函式所使用的引數,就如例子裡面的h,m,s最好不要和private裡的資料同名的,通常是加乙個m_或者後面加乙個_。但是初始化列表,是可以同名的;如果採用賦值的方法,由於小範圍資料會遮蔽大範圍資料,是不會有私有資料hour minute等的參與,所以盡量不要重名的好。

複製建構函式是幹嘛呢?就比如一張白紙,我可以通過影印機把另一張紙上的全部內容全部影印到這張紙上。所以複製建構函式就是把乙個類裡面的所有物件全部給另乙個類。啥?還是很抽象?那就把你女神比作乙個類,她的外貌、氣質全部複製一遍到另乙個類,你女朋友身上,這時候就要複製建構函式。如果,女神就是你女朋友,沒話說,哈哈哈。??

class

clock

;clock::

clock()

:hour

(h),

minute

(m),

second

(s)clock::

clock

(clock &p)

//複製建構函式的實現

intmain()

析構函式是幹嘛的呢?就相當於乙個清理工,在使用所有記憶體後,他要負責作清理工作。所以它在物件即將要消亡的時候自動呼叫,同樣,如果沒有的話,編譯器同樣會生成乙個預設的建構函式。它的函式體和引數都為空。

class

clock

;//就結束了,析構函式

private

:int hour,minute,secend;};

clock::

~clock()

常看見public那裡可不止這些函式,分別是實現不同功能的。就叫公有成員函式罷,這裡就提一下,時鐘類裡面的轉紐。因為建構函式是物件產生時呼叫的,所以要改變時鐘的數值,要重新寫乙個函式,有人說再用一遍建構函式,也不是不可以,只是那就又重新造了乙個類,因為那是物件產生時呼叫的嘛,那原來的類還是沒有改變值的。

class

clock

;void clock::

set(

int h,

int m,

int s)

//實現

clock::

clock()

:hour

(h),

minute

(m),

second

(s)int

main()

類的組合

就是在乙個類裡面再創造另乙個類,兩者是包含與被包含的關係。

例題:編寫時間time類和日期類date,要求類date中包含乙個time類的物件,並且輸出時間值。

#include

using

namespace std;

class

time

//這裡要用函式的原因是因為,date類不能直接

//訪問time類的私有資料,所以用內聯函式處理。

intgetminute()

intgetsecond()

private

:int hour,second,minute;};

time::

time

(time &ss)

time::

time

(int h,

int m,

int s)

class

date

;date::

date

(time p,

int y,

int m,

int d):p1

(p)//注意此處的建構函式,對於內嵌

//類必須用初始化列表來處理。

void date::

show()

intmain()

注:這裡還要注意乙個前向引用宣告,就像c裡面,若要先寫主函式就得在前面先宣告其他函式,就上個例子,若先寫date類後寫time類,就得在date類前加乙個,class time;

初次見面,請多關照!如果有錯誤,歡迎來提喲,我很虛心的,必洗耳恭聽!?

C 中的類與物件

什麼是類與物件?類是一種抽象化的資料型別,一般而言,它包括資料與處理資料的函式這兩大部分。而物件則是對某一類的例項。例如 class cmyclass cmyclass為類 cmyclass myclass myclass為物件1.類的定義與特點 類的定義示例如下 class cmyclass 各個...

c 中的類與物件

我們都知道,在c語言中,結構體是指一系列相同型別或者不同型別的資料構成的資料集合。在c語言中我們將結構體定義為 struct student 而我們知道,在c語言中,資料 和 處理資料的操作 函式 是分開的,語言本身並沒有支援 資料和函式 之間的關聯性。所以在c語言的結構體中,只能存放資料,定義變數...

C 類與物件(中)

類六個預設函式包括構造 拷貝構造 析構 賦值運算子過載 取位址操作符過載 const修飾的取位址操作符過載,預設生成 建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員 都有 乙個合適的初始值,並且在物件的生命週期內只呼叫一次 特性如下 1.函式名與類名...