天天看點

類與對象(四)——對象數組和類的作用域

對象數組就是數組裡的每個元素都是類的對象,指派時先定義對象,然後将對象直接賦給數組就行了。

  在某些C++程式中,使用者通常要建立同一個類的多個對象。這個時候我們就可以建立一個對象數組将這些對象放在裡面,使得程式看起來更加清楚了然。聲明對象數組的方法和普通數組是一樣的:

  Stock mystuff[4];

可以用構造函數來初始化數組元素,在這種情況下,必須為每個元素調用構造函數:

const int STK=4;
Stock stocks[STKS]={
	Stock("st",12.5,20),
	Stock("Boffo",200,2.0),
	Stock("Monolithic",130,3.25),
	Stock("Fleep",60,6.5)
};
           
如果一個類包含多個構造函數,則可以對不同的元素使用不同的構造函數。
const int STK=10;
Stock stocks[STKS]={
	Stock("st",12.5,20),
	Stock(),
	Stock("Monolithic",130,3.25)
};
           

上述代碼使用Stock(const string & co,long n,double pr)初始化stock[0]和stock[2],使用構造函數Stock()初始化stock[1].由于該聲明隻初始化了數組的部分元素,是以餘下的7個元素将使用預設構造函數進行初始化。

類作用域

在類中定義的名稱(如類資料成員名和類成員函數名)的作用域都為整個類,作用域為整個類的名稱隻在該類中是已知的,在類外是不可知的。是以,可以在不同類中使用相同的類成員名而不會引起沖突。另外,類作用域意味着不能從外部直接通路類的成員,共有成員函數也是如此。也就是說,要調用共有成員函數,必須通過對象。

繼續閱讀