所謂物件陣列是指每一陣列元素都是物件的陣列, 也就是說,若乙個類有若干個物件,則把這一系列的物件用乙個陣列來存放。
物件陣列的元素是物件, 不僅具有資料成員,而且還有函式成員
定義乙個一維陣列的格式如下:
類名 陣列名[下標表示式];
exam ob[4]; //定義了類exam的物件陣列ob.
與基本資料型別的陣列一樣,在使用物件陣列時也只能訪問單個陣列元素,也就是乙個物件,通過這個物件,也可以訪問到它的公有成員使用的一般形式是:
陣列名[下標].成員名
例3.4 物件陣列的應用
#include
class exam
int get_x()
private:
int x;
};main()
exam(int n)
int get_x()
private:
int x;
};main()
;exam ob2[4]=;
exam ob3[4]=;
exam ob4[4]=;
ob4[2]=exam(77);
ob4[3]=exam(88);
int i;
for (i=0;i<4;i++)
cout【例3.6】 本例說明當建構函式具有乙個以上的引數時,如何對二維陣列物件進行初始化
#include
class example
~example()
int get_x()
int get_y()
private:
int x, y;
};main()
;int i;
for (i=0;i<3;i++)
cout<
}
每乙個物件在初始化後都會在記憶體中占有一定的空間。因此,即可以通過物件名訪問乙個物件,也可以通過物件位址來訪問乙個物件。
(1)用指標訪問單個物件成員
p->setdate(2007,10,18);例3.7 物件指標的使用
#include
class exe
void show_a()
(2)用物件指標訪問物件陣列物件指標不僅能訪問單個物件,也能訪問物件陣列.
exe *p; //宣告物件指標p
exe ob[2]; //宣告物件陣列ob[2]
p=ob; //將物件陣列的首位址賦給物件指標
main()
結果:
10 20
一般而言,當指標加1或減1時,它總是指向其基本型別中相鄰的乙個元素,物件指標也是如此. 本例中指標物件p加1時,指向下乙個陣列物件元素.
【例3.8】 本例說明如何通過物件指標來訪問物件陣列,使程式以相反的順序顯示物件陣列的內容
#include
class example
int get_x()
int get_y()
private:
int x,y;
};main()
;int i;
example *p;
p=&op[3]; // 取出最後乙個陣列元素的位址
for (i=0;i<4;i++)
int z;
};void main()
int getx()
int gety()
private:
int x,y;
};void main(){
coord op(5,6);
coord *pc1=&op;
int (coord∷*pc_getx)();
pc_getx=coord∷getx;
cout●編號472,輸入編號直達本文
●輸入m獲取文章目錄
c語言與c++程式設計
分享c/c++技術文章
C 物件陣列和物件指標
每天的生活從一杯綠茶開始,2月就這麼過去了,時間總是這麼快 1.物件陣列 在實際中,有許多的實體的屬性是共同的額,只有屬性的具體內容不一樣。這個時候我們就需要定義物件陣列,例如 student stud 50 假設已經宣告了student的類。每乙個陣列元素就是乙個student的物件。建立陣列時候...
四 C語言柔性陣列 指標賦值
一 柔性陣列 今天看了公司的 發現乙個很奇怪的問題,後來自己寫了類似 我先把 貼出來吧。include include include typedef struct dev card msg s int main void 好奇怪啊,有木有,結構體中竟然定義了乙個包含0個元素的陣列,當時看到這裡就暈...
C 有指標成員的類如何拷貝 賦值該類物件
當乙個帶有指標成員 b的類a被拷貝或賦值給b時,該指標所指向的記憶體多出乙個指標b.b,這樣,當a 物件析構時,刪除了a.b所指向的記憶體,這時,當b析構時,利用delete 釋放b.b指向的記憶體時發現要釋放的記憶體不存在,會導致錯誤。class publisher class book book...