上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
satanupup 喜歡上這裡的冒險者
註冊時間: 2007-05-29 文章: 80
68.10 果凍幣
|
發表於: 2007-10-2, PM 6:01 星期二 文章主題: [問題]繼承的衍生類別 |
|
|
雖然看的懂,可是卻寫不出來這樣的程式..
哪位大大可以幫忙翻譯成白話文加注譯呢..
利用繼承建立了building的兩個衍生類別一個是house另一個是school
----------------這不是分隔線---------------------
代碼: |
#include <iostream>
using namespace std;
class building {
int rooms;
int floors;
int area;
public:
void set_rooms(int num);
int get_rooms();
void set_floors(int num);
int get_floors();
void set_area(int num);
int get_area();
};
class house:public building {
int bedrooms;
int baths;
public:
void set_bedrooms(int num);
int get_bedrooms();
void set_baths(int num);
int get_baths();
};
class school:public building{
int classrooms;
int offices;
public:
void set_classrooms(int num);
int get_classrooms();
void set_offices(int num);
int get_offices();
};
void building::set_rooms(int num)
{
rooms=num;
}
void building::set_floors(int num)
{
floors=num;
}
void building::set_area(int num)
{
area=num;
}
int building::get_rooms()
{
return rooms;
}
int building::get_floors()
{
return floors;
}
int building::get_area()
{
return area;
}
void house::set_bedrooms(int num)
{
bedrooms=num;
}
void house::set_baths(int num)
{
baths=num;
}
int house::get_bedrooms()
{
return bedrooms;
}
int house::get_baths()
{
return baths;
}
void school::set_classrooms(int num)
{
classrooms=num;
}
void school::set_offices(int num)
{
offices=num;
}
int school::get_classrooms()
{
return classrooms;
}
int school::get_offices()
{
return offices;
}
int main()
{
house h;
school s;
h.set_rooms(12);
h.set_floors(3);
h.set_area(4500);
h.set_bedrooms(5);
h.set_baths(3);
cout<<"house has "<<h.get_bedrooms();
cout<<" bedrooms\n";
s.set_rooms(200);
s.set_classrooms(180);
s.set_offices(5);
s.set_area(25000);
cout<<" school has "<<s.get_classrooms();
cout<<" classrooms\n";
cout<<"ts area is "<<s.get_area();
cout<<endl;
system("pause");
return 0;
} |
|
|
回頂端 |
|
|
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-2, PM 8:15 星期二 文章主題: Re: [問題]繼承的衍生類別 |
|
|
代碼: |
#include <iostream>
using namespace std;
class building { //設立一個類別building
int rooms;
int floors;
int area; //裡面有3個變數
public:
void set_rooms(int num);
int get_rooms();
void set_floors(int num);
int get_floors();
void set_area(int num);
int get_area(); //公用函數
};
class house:public building { //設立一個類別house繼承了building
int bedrooms;
int baths; //有2個變數
public:
void set_bedrooms(int num);
int get_bedrooms();
void set_baths(int num);
int get_baths(); //公用函數
};
class school:public building{ //設立一個類別school繼承了building
int classrooms;
int offices; //有兩個變數
public:
void set_classrooms(int num);
int get_classrooms();
void set_offices(int num);
int get_offices(); //公用函數
};
void building::set_rooms(int num) //building的函數
{
rooms=num; //設定rooms
}
void building::set_floors(int num) //building的函數
{
floors=num; //設定floors
}
void building::set_area(int num) //building的函數
{
area=num; //設定area
}
int building::get_rooms() //building的函數
{
return rooms; //傳回
}
int building::get_floors() //building的函數
{
return floors; //傳回
}
int building::get_area() //building的函數
{
return area; //傳回
}
void house::set_bedrooms(int num) //house的函數
{
bedrooms=num; //設定bedrooms
}
void house::set_baths(int num) //house的函數
{
baths=num; //設定baths
}
int house::get_bedrooms() //house的函數
{
return bedrooms; //傳回
}
int house::get_baths() //house的函數
{
return baths; //傳回
}
void school::set_classrooms(int num) //school的函數
{
classrooms=num; //設定classrooms
}
void school::set_offices(int num) //school的函數
{
offices=num; //設定offices
}
int school::get_classrooms() //school的函數
{
return classrooms; //傳回
}
int school::get_offices() //school的函數
{
return offices; //傳回
}
int main()
{
house h; //有個house類別的h
school s; //有個house類別的s
h.set_rooms(12); //呼叫h的各種函數
h.set_floors(3);
h.set_area(4500);
h.set_bedrooms(5);
h.set_baths(3);
cout<<"house has "<<h.get_bedrooms(); //印出畫面跟數值
cout<<" bedrooms\n"; // 印出文字然後換行
s.set_rooms(200); //呼叫s的各種函數
s.set_classrooms(180);
s.set_offices(5);
s.set_area(25000);
cout<<" school has "<<s.get_classrooms(); //印出畫面跟數值
cout<<" classrooms\n"; // 印出文字然後換行
cout<<"ts area is "<<s.get_area(); //印出畫面跟數值
cout<<endl;
system("pause");
return 0;
}
|
試驗自己~應該是這樣解釋的~不知對不對
希望你能看的懂
他很多都沒用到= =~~... |
|
回頂端 |
|
|
satanupup 喜歡上這裡的冒險者
註冊時間: 2007-05-29 文章: 80
68.10 果凍幣
|
發表於: 2007-10-2, PM 8:41 星期二 文章主題: Re: [問題]繼承的衍生類別 |
|
|
感謝~ |
|
回頂端 |
|
|
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-2, PM 10:09 星期二 文章主題: Re: [問題]繼承的衍生類別 |
|
|
阿
發現我有個地方打錯了= =
s是school類別的= =~
基本上都是看main之後的內容來呼叫啦
不過他這段程式碼~有些有設定~但是要印出來卻沒用到= =~~ |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2007-10-2, PM 10:24 星期二 文章主題: |
|
|
這是繼承圖
代碼: |
建築物(building)
|
|--房屋(house)
|--學校(school)
|
建築物架構圖
代碼: |
建築物(building)
|
|--房間(int rooms)
|--樓層(int floors)
|--面積(int area)
|==設定房間數[void set_rooms(int num)]
|==取得房間數[int get_rooms()]
|==設定樓層數[void set_floors(int num)]
|==取得樓層數[int get_floors()]
|==設定面積[void set_area(int num)]
|==取得面積[int get_area()]
|
房屋架構圖(前半繼承自建築物)
代碼: | 房屋(house)
|
|--房間(int rooms)
|--樓層(int floors)
|--面積(int area)
|==設定房間數[void set_rooms(int num)]
|==取得房間數[int get_rooms()]
|==設定樓層數[void set_floors(int num)]
|==取得樓層數[int get_floors()]
|==設定面積[void set_area(int num)]
|==取得面積[int get_area()]
|
|--臥房(int bedrooms)
|--浴室(int baths)
|==設定臥房數[set_bedrooms(int num)]
|==取得臥房數[get_bedrooms()]
|==設定浴室數[set_baths(int num)]
|==取得浴室數[get_baths()]
|
學校架構圖(前半繼承自建築物)
代碼: |
學校(school)
|
|--房間(int rooms)
|--樓層(int floors)
|--面積(int area)
|==設定房間數[void set_rooms(int num)]
|==取得房間數[int get_rooms()]
|==設定樓層數[void set_floors(int num)]
|==取得樓層數[int get_floors()]
|==設定面積[void set_area(int num)]
|==取得面積[int get_area()]
|
|--教室(int classrooms)
|--辦公室(int offices)
|==設定教室數[set_classrooms(int num)]
|==取得教室數[get_classrooms()]
|==設定辦公室數[set_offices(int num)]
|==取得辦公室數[get_offices()]
|
主程式碼解釋
代碼: | int main()
{
house h; // 宣告house類別的 h 物件
school s; // 宣告school類別的 s 物件
h.set_rooms(12); // 設定 h 有 12 間房間
h.set_floors(3); // 設定 h 有 3 層樓
h.set_area(4500); // 設定 h 面積為 4500
h.set_bedrooms(5); // 設定 h 有 5 間臥室
h.set_baths(3); // 設定 h 有 3 間浴室
// 輸出 h 有幾間臥室
cout<<"house has "<<h.get_bedrooms();
cout<<" bedrooms\n";
s.set_rooms(200); // 設定 s 有 200 個房間
s.set_classrooms(180); // 設定 s 有 180 個教室
s.set_offices(5); // 設定 s 有 5 間辦公室
s.set_area(25000); // 設定 s 面積為 25000
// 輸出 h 有幾間教室和面積
cout<<" school has "<<s.get_classrooms();
cout<<" classrooms\n";
cout<<"ts area is "<<s.get_area();
cout<<endl;
system("pause");
return 0;
}
|
大概就是醬...
共有的東西先弄成一個類別,再根據他的差異分開繼承並宣告新類別 _________________ 已經畢業了!! |
|
回頂端 |
|
|
satanupup 喜歡上這裡的冒險者
註冊時間: 2007-05-29 文章: 80
68.10 果凍幣
|
發表於: 2007-10-8, AM 7:20 星期一 文章主題: |
|
|
感謝B大大,這樣我看的更詳細了,果然改成中文就是有差 |
|
回頂端 |
|
|
|