電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[問題]繼承的衍生類別

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
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大大,這樣我看的更詳細了,果然改成中文就是有差
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作