C 物件陣列和物件指標

2021-07-27 14:51:44 字數 1578 閱讀 5759

每天的生活從一杯綠茶開始,2月就這麼過去了,時間總是這麼快~

1.物件陣列

在實際中,有許多的實體的屬性是共同的額,只有屬性的具體內容不一樣。這個時候我們就需要定義物件陣列,

例如:student stud[50]。假設已經宣告了student的類。每乙個陣列元素就是乙個student的物件。

建立陣列時候,同樣需要呼叫建構函式,

(1)當只有乙個引數時候,在定義陣列時,可以直接在等號後邊的花括號提供實參。

如:student stud[3] = ;

(2)當建構函式有多個引數時候,則不能在定義陣列的時候直接提供所有引數的辦法,容易產生歧義性,

student::student(int=10, int = 20, int =30);//定義含預設引數的建構函式

//如果定義陣列物件

student stud[3] = ;

程式中3個實參和形參關係混亂,所以不要採用這種容易產生歧義的定義方法。

如果建構函式有多個引數,則可以這樣定義:

student stud[3]=

2,物件指標

建立物件的時,編譯器自動給每乙個物件分配一定的儲存空間,以存放其成員。物件空間的起始位址就會物件的指標。

(1)指向物件的指標

指向類物件的指標變數的形式:類名* 物件指標

time t1;   //定義 t1 為time類物件

time* pt; //定義 pt 為指向time類物件的指標

pt = &t1: //把 t1 的起始位址賦值給 pt。

這樣 pt 就可以訪問 物件和物件的成員變數。

(2)指向物件成員的指標

物件中的成員也有位址,存放物件成員位址的指標變數就是指向物件成員的指標變數。

指向物件資料成員的指標變數一般形式:資料型別* 指標變數

int* pt ;  //定義指向整形資料的指標變數

pt = &t1.hour;//將物件 t1 資料成員hour的位址賦給 p1 ,p1 指向 t1.hour

則 *pt  和 t1.hour 的值相同

(3)指向物件成員函式的指標

定義指向公用成員函式的指標變數的一般形式: 資料型別名(類名::*指標變數名)(引數列表)

使指標指向乙個公共成員函式的一般形式:指標變數名 = &類名::成員函式名

void(time::*p2)();//定義指標p2指向 time 類中公用成員函式的指標變數

p2 = &time::get_time; //把函式get_time()的入口位址賦值給 p2。

物件陣列和指標

宣告乙個物件陣列 呼叫單個陣列元素公有成員 a 0 show 陣列名 下標表示式 成員名 動態建立物件陣列 point p new point 動態建立物件,沒有給出引數列表,呼叫預設建構函式 point p new point 保留括號,但沒有給出任何值,表示用0初始化物件 point p new...

C 之物件陣列與物件指標

是指每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把一系列的物件用乙個陣列來存放。物件陣列的元素是物件,不僅具有資料成員,而且還有函式成員。格式 類名 陣列名 下標表示式 在建立陣列時,同樣要呼叫建構函式。有幾個陣列元素就要呼叫幾次建構函式。1 當只需要乙個引數時,在定義物件陣列...

C 物件指標和物件引用

在c 中,可以說明指向類的資料成員和成員函式的指標 1 指向資料成員的指標格式如下 型別說明符 類名 指標名 2 指向成員函式的指標格式如下 型別說明符 類名 指標名 參數列 如下例 class a public int fun int b a int i int c private int a 定...