C 之物件陣列與物件指標

2021-08-28 22:13:43 字數 2068 閱讀 2073

是指每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把一系列的物件用乙個陣列來存放。物件陣列的元素是物件,不僅具有資料成員,而且還有函式成員。

格式: 類名 陣列名[下標表示式]

在建立陣列時,同樣要呼叫建構函式。有幾個陣列元素就要呼叫幾次建構函式。

(1)當只需要乙個引數時,在定義物件陣列時可以直接在等號後面的花括號內提供實參;當需要多個引數時,只能對乙個建構函式的第乙個引數賦值,其餘的使用預設值。

#includeusing namespace std;

#includeclass exam

int get_x()

private:

int x;

};int main()

;//用只有乙個引數的建構函式給物件陣列賦值

//如果建構函式的引數大於1,傳入的引數對第乙個引數賦值,其餘的為預設值

for (int i = 0; i < 4; i++)

return 0;

}

(2)與基本資料型別的陣列一樣,在使用物件陣列時只能訪問單個陣列元素

一般形式為:陣列名[下標].成員名

例如:

for(int i=0;i<4;i++)

cout《執行結果:11 22 33 44

注意:當各個元素的初始值相同時,可以在類中定義不帶引數的建構函式或帶有預設引數值的建構函式;反之,需要定義帶引數(無預設值)的建構函式

#include#includeusing namespace std;

class exam

exam(int n)//帶1個引數的建構函式

int get_x()

private:

int x;

};int main()

;//呼叫4次帶1個引數的建構函式

exam ob2[4] = ;//呼叫2次帶1個引數的建構函式,2次不帶引數的建構函式

for (int i = 0; i < 4; i++)

cout << ob1[i].get_x() << ' ';

cout << endl;

for (int i = 0; i < 4; i++)

cout << ob2[i].get_x() << ' ';

system("pause");

return 0;

}

執行結果為:

11 22 33 44

55 66 123 123

編譯系統只為物件陣列元素的建構函式傳遞1個實參,所以在定義陣列時提供的實參個數不能超過陣列元素個數。

如果建構函式有多個引數,在定義物件陣列時應當怎麼實現初始化?我們只需在括號中分別寫出建構函式並指定實參即可。例如類complex的建構函式有兩個引數,分別代表實部和虛部,則可以這樣定義物件陣列:

complex com[3] = ;

1.用指標訪問單個物件成員:說明物件指標的語法和說明其他資料型別指標的語法相同。使用物件指標時,首先要把它指向乙個已建立的物件,然後才能引用該物件的成員。在一般情況下,用點運算子「.」來訪問物件成員,當用指向物件的指標來訪問物件成員時,就要用「->」操作符。

#include#includeusing namespace std;

class exe

void show_a()

private:

int x;

};int main()

//執行結果:22

2

2.用物件指標訪問物件陣列

將上述main函式裡邊替換為:

exe ob[2];

exe *p;

ob[0].set_a(10);

ob[1].set_a(20);

p = ob;

p->show_a();

p++;

p->show_a();

//執行結果:

10 20

C 物件陣列與this指標

標籤 空格分隔 c 版本 2該文章僅被發布於作業部落 原 csdn 由於在c 中我們可以直接操作堆和棧,所以在宣告時我們也需要選擇陣列的建立方式。有一種最顯而易見的方法去判斷變數的儲存狀態,就是看物件建立時有沒有用new關鍵字。1,棧陣列棧物件 顧名思義就是陣列和物件都在當前棧中分配,帶來的好處就是...

bool指標 如何賦值 C 物件陣列與物件指標

所謂物件陣列是指每一陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,則把這一系列的物件用乙個陣列來存放。物件陣列的元素是物件,不僅具有資料成員,而且還有函式成員 定義乙個一維陣列的格式如下 類名 陣列名 下標表示式 exam ob 4 定義了類exam的物件陣列ob.與基本資料型別的陣列一樣...

C 物件陣列和物件指標

每天的生活從一杯綠茶開始,2月就這麼過去了,時間總是這麼快 1.物件陣列 在實際中,有許多的實體的屬性是共同的額,只有屬性的具體內容不一樣。這個時候我們就需要定義物件陣列,例如 student stud 50 假設已經宣告了student的類。每乙個陣列元素就是乙個student的物件。建立陣列時候...