類與物件學習總結

2021-08-19 04:51:01 字數 3488 閱讀 2400

一、1.  類的定義

(1)類是對具有相同屬性和行為的一組物件的抽象與統一描述。是使用者自定義的資料型別

(2)類的定義包括行為和屬性兩個部分。

(3)屬性以資料表示,行為通過函式實現。

2.c++類定義的格式

class 

類名 ;

各成員函式的實現;

3.注意事項

(1)類的成員可以是其他類的物件,但不能以類自身的物件作為本類的成員,而類自身的指標和引用可以作為類的成員。

(2)類定義必須以分號「;」結束。

(3)類與結構體的區別:

沒有明確指定類成員的訪問許可權時,c++

結構體的成員是公有的,而類的成員是私有的。

4 .成員函式

類的成員函式是實現類的行為屬性的成員。

一般將成員函式宣告為函式原型,在類外具體實現成員函式。

返回值型別  類名::成員函式名(參數列)

5.物件

(1)物件是類的例項或實體。

(2)類與物件的關係,如同

c++基本資料型別和該型別的變數之間的關係。

6.類成員的訪問

物件成員的訪問包括:

●圓點訪問形式:物件名

.公有成員

●指標訪問形式

示例: #include<

iostream

>

using namespace

std;

intmax ( int

a , 

intb );

intmax ( int

a , 

intb, 

intc ) ;

intmain ()

intmax ( int

a , 

intb )

intmax ( int

a , 

intb,  int

c )二、

1.ø建構函式是用於建立物件的特殊成員函式

當建立物件時,系統自動呼叫建構函式

ø建構函式的作用是:

為物件分配空間;對資料成員賦初值;請求其他資源

ø沒有使用者定義的建構函式時,系統提供

預設版本的建構函式

ø建構函式名與類名相同:

類名ø建構函式可以

過載ø建構函式可以有任意型別的引數,但

沒有返回型別

2.ø析構函式是用於取消物件的成員函式

當乙個物件作用域結束時,系統自動呼叫析構函式

ø析構函式的作用是進行物件消亡時的清理工作

ø沒有使用者定義析構函式時,系統提供預設版本的析構函式

ø析構函式名為:~

類名 ø

析構函式沒有引數,也沒有返回型別

示例:為類date建立乙個建構函式。

#include >

class date

date::date(inty,intm,intd)

inline void date::showdate()

3.this指標

需要顯式引用

this

指標的三種情況(1

)在類的非靜態成員函式中返回類

物件本身

或物件的引用的時候,直接使用return*this,返回

本物件的位址時

,returnthis。 (2

)當引數與成員變數名相同時,如this->x= x,不能寫成

x = x。

(3)避免對同一物件進行賦值操作,判斷兩個物件是否相同時,使用

this指標。 三、

1.複製建構函式的特點

a) 複製建構函式名與類名相同,並且也沒有返回值型別。

b) 複製建構函式可寫在類中,也可以寫在類外。

c) 複製建構函式

要求有乙個

類型別的

引用引數。

d) 如果沒有顯式定義複製建構函式,系統自動生成乙個預設形式的複製建構函式。

2.複製建構函式的呼叫

以下三種情況下由編譯系統自動呼叫:

1. 宣告

語句中用類的乙個已知物件初始化該類的另乙個物件時。

2. 當

物件作為乙個函式

實參傳遞給函式的形參時

,需要將實參物件去初始化形參物件時,需要呼叫複製建構函式。

3. 當

物件是函式的

返回值時

,由於需要生成乙個

臨時物件

作為函式返回結果,系統需要將臨時物件的值初始化另乙個物件,需要呼叫複製建構函式。

3.類的其他成員

四、 類定義中除了一般指定訪問許可權的成員,還可以定義各種特殊用途的成員。

常成員靜態成員

友元1.

常資料成員 使用

const

說明的資料成員稱為常資料成員。

如果在乙個類中說明了常資料成員,那麼建構函式就

只能通過初始化列表

對該資料成員進行初始化,而任何其他函式都不能對該成員賦值。

2.靜態成員

ø類成員冠以static宣告時,稱為靜態成員。

ø 靜態資料成員為同類物件共享。

ø 靜態成員函式與靜態資料成員協同操作。 

(1)靜態成員函式在類外定義時不用

static字首。

(2)靜態成員函式主要用來訪問同一類中的靜態資料成員。

(3)  

私有靜態成員函式不能在類外部或用物件訪問。 (4

)可以在建立物件之前處理靜態資料成員。 (5

)編譯系統將靜態成員函式限定為內部連線

(在其他檔案中不可見)。 (

6)靜態成員函式中是沒有this指標的。 (7

)靜態成員函式不訪問類中的非靜態資料成員。如有需要,只能通過物件名(或指向物件的指標)訪問該物件的非靜態成員。

3.友元函式

如果在本類(

類a)以外的其他地方定義了乙個函式

(函式 b)

這個函式可以是不屬於任何類的非成員函式,

也可以是其他類的成員函式,

在類體中用friend

對其(函式b)

進行宣告,此函式就稱為本類(

類a)的友元函式。

友元函式(

函式b)

可以訪問這個類(

類a)中的私有成員

4.物件陣列的初始化

(1)當物件陣列所屬的類中包含帶參

的建構函式,可用初始化列表完成物件陣列的初始化。

(2)當物件陣列所屬的類中包含無參

的建構函式,也可以先定義,再給每個陣列元素賦值。

(3)當物件陣列所屬的類中包含單個引數

的建構函式,可簡寫。

示例:#include <

iostream>

#include

using namespace std;

class person

}; 感想:c++越往後越學越難,前半部分類的定義部分還好理解,從this指標開始就覺得聽不懂了,後邊到定義學生資訊,只能把前面的成員函式定義出來,但並不清楚怎麼進一步進行除錯。

類與物件學習總結

在大一上學期,我學習了些簡單的c語言程式,不過當時只是根據看到的題目寫出演算法來解決問題。新學期學習了類與物件之後,對程式有了新的體會。在學習類與物件時,了解了寫程式的兩種方法,一是面向過程。二是物件導向。其中面向過程我認為就是直接通過主函式或者借用其他函式,在主函式中直接寫演算法的程式。比如 he...

類與物件學習總結

類與物件 一 定義類和物件 1.一般形式 class 類名 定義類時首字母要大寫 public 公有段資料成員和成員函式 protected 保護段資料成員和成員函式 private 私有段資料成員和成員函式 此處分號不可省略!private 用於宣告私有成員。私有成員只能在類中可見,不能在類外或派...

類與物件學習總結

終於接觸到正式的c 內容了 類與物件。程式設計習慣 1 函式單一原則即乙個函式實現乙個功能 2 建構函式必須至少是兩個乙個帶參乙個不帶參,get set函式必須寫,其次寫功能函式 3 定義類的物件名首字母大寫,變數小寫,常量全大寫。除錯技巧 類每增加乙個成員函式都要在主函式中進行測試,每增加乙個功能...