[問題] class的繼承和map

看板C_and_CPP作者 (aa)時間16年前 (2009/12/28 22:59), 編輯推噓3(3012)
留言15則, 5人參與, 最新討論串1/2 (看更多)
目前我有一個class(學生資料)裡面有每個學生的基本資料 以及get和set資料的function 接下來想要建立另一個class(班級)裡面有"全班"學生的資料以及老師的資料 我想要做下面兩件事可是不知道要怎麼把這兩件事合在一起 1.為了搜尋方便希望把全班學生的資料以名字當key放在map中 2.班級這個class可以繼承學生資料這個class 以便可以使用在學生資料這個class中的某些function 有人可以給我一點方向嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.210.114

12/28 23:03, , 1F
1. 你的問題是不知道 std::map 該怎麼用嗎?
12/28 23:03, 1F

12/28 23:03, , 2F
2. 這種情況似乎不應該用繼承,因為班級不是一種學生
12/28 23:03, 2F

12/28 23:04, , 3F
通常 class B : public A 是用在「B是一種A」的概念
12/28 23:04, 3F

12/28 23:06, , 4F
當然不是絕對啦,只是覺得班級繼承學生的感覺好怪
12/28 23:06, 4F

12/28 23:14, , 5F
班級裡面應該是有很多學生吧?這才是你要的:)
12/28 23:14, 5F

12/28 23:15, , 6F
班級的data member裡面有map(姓名,資料)
12/28 23:15, 6F

12/29 08:33, , 7F
我知道map怎麼用,可是就是有一種班級繼承學生很怪
12/29 08:33, 7F

12/29 08:38, , 8F
也是可以不用繼承,可是那要怎麼讓班級也可以使用學生
12/29 08:38, 8F

12/29 08:39, , 9F
中的某些function,會想用繼承是因為我覺得學生是班級
12/29 08:39, 9F

12/29 08:39, , 10F
一部分
12/29 08:39, 10F

12/29 09:24, , 11F
那叫做"HAS-A",「有一個」的關係
12/29 09:24, 11F

12/29 09:25, , 12F
這種關係通常寫成班級裡的成員變數是學生
12/29 09:25, 12F

12/29 09:25, , 13F
繼承則是用在"IS-A",「是一個」的關係上
12/29 09:25, 13F

12/31 11:41, , 14F
怎麼會讓班級去繼承學生? 這個關係根本就不對
12/31 11:41, 14F

12/31 11:44, , 15F
你應該是在班級裡 加一個type是container<學生>的成員才對
12/31 11:44, 15F
文章代碼(AID): #1BECVaiB (C_and_CPP)
文章代碼(AID): #1BECVaiB (C_and_CPP)