?? 14-13.txt
字號:
/* 范例:14-13 */
#include <iostream.h>
/* 以下的makings類名稱與earth類內的makings嵌套類名稱相同。嵌套類的
namespace是屬于外圍類,可與外圍類外的類同名。 */
class makings //#1 與#2,#3同名
{
public:
int water;
int mud;
};
class earth
{
private:
class makings //#2與#1,#3同名
{
public:
int water;
int mud;
};
makings myearth_makings; /* 以嵌套類為類型,定義一個外圍類的數據成員 */
public:
void use_makings()
{
myearth_makings.water = 10000;
myearth_makings.mud = 9000;
cout<<"地球的水有"<<myearth_makings.water<<endl;
cout<<"地球的土有"<<myearth_makings.mud<<endl;
cout<<"地球適合人類居住#$$&%...\n";
}
};
/* 利用嵌套類在private區隱藏其數據,外圍類再以嵌套類為類型來定義數據成員。再
利用外圍類的成員函數來存取嵌套類的成員,這樣可以有更嚴謹的隱藏數據功能且
嵌套類的生命范圍只屬于外圍類,外圍類之外的類是不可見的 */
class Mars
{
private:
class makings; // #3與#1,#2同名
makings *myMars_makings; /* 如嵌套類定義在外圍類之外,僅能用指針或參考 */
public:
void use_makings();
};
class Mars::makings
{
public:
int water;
int mud;
};
/* 函數內有使用到以嵌套類為類型所建立的數據成員
myMars_makings,所以成員函數use_makings()的實作區放在class Mars::makings
的后面 */
void Mars::use_makings()
{
myMars_makings = new makings;
myMars_makings->water = 10;
myMars_makings->mud = 10000;
cout<<"火星的水有"<<myMars_makings->water<<endl;
cout<<"火星的土有"<<myMars_makings->mud<<endl;
cout<<"火星不適合人類居住#$$&%...\n";
delete myMars_makings;
}
void main()
{
earth obj1; Mars obj2;
obj1.use_makings();
obj2.use_makings();
getchar();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -