1.定義媒體類別。
2.它有兩個派生類:Book類和CD類。
3.其中,圖書有名稱、銷售數量、ISBN號等屬性。
4.CD有名稱、銷量、生產商等屬性。
5.要求:
1)設計上述三個類的相關屬性;
2)利用多態的概念,分別以虛函數的形式顯示圖書和光盤的信息。
3)寫壹個常用函數f(),顯示已經賣出1000以上的書和光盤。
4)在主函數中測試。
*/
# include & ltvector & gt
# include & lt字符串& gt
# include & ltiostream & gt
使用命名空間std
班級媒體
{
公共:
media(){ };
~ Media(){ };
虛擬void Init(字符串名,整數)
{
m _ Name = name
m_Number =數字;
};
虛擬int GetNumber()
{
返回m _ Number
}
虛擬空顯示()
{
cout & lt& lt"名稱:" & lt& ltm _ Name & lt& ltendl
cout & lt& lt" namber:" & lt;& ltm _ Number & lt& ltendl
}
受保護:
字符串m _ Name
int m _ Number
};
課堂用書:公共媒體
{
公共:
book(){ };
~ Book(){ };
void Init(字符串名稱,整數,字符串ISBN)
{
Media::Init(名稱,編號);
m _ ISBN = ISBN
};
空顯示()
{
Media::Display()。
cout & lt& lt" ISBN:" & lt;& ltm _ ISBN & lt& ltendl
}
私人:
字符串m _ ISBN
};
CD類:公共媒體
{
公共:
CD(){ };
~ CD(){ };
void Init(字符串名稱、整數、字符串作者)
{
Media::Init(名稱,編號);
m_Author =作者;
};
空顯示()
{
Media::Display()。
cout & lt& lt作者:“& lt& ltm _ Author & lt& ltendl
}
私人:
字符串m _ Author
};
int main()
{
//添加書籍和光盤
Book *b1 =新書();
Book *b2 =新書();
Book *b3 =新書();
b 1->;Init("book1 ",100," ISBN 100 ");
B2->;Init("book2 ",1000," ISBN 1000 ");
B3->;Init("book3 ",10000," ISBN 10000 ");
CD *cd1 =新CD;
CD *cd2 =新CD;
CD *cd3 =新CD;
CD 1->;Init("cd1 ",100," author 100 ");
cd2->Init("cd2 ",1000," author 1000 ");
cd3->;Init("cd3 ",10000," author 10000 ");
向量& ltMedia * & gtvectMedia
vect media . push _ back(b 1);
vect media . push _ back(B2);
vect media . push _ back(B3);
vect media . push _ back(CD 1);
vectmedia . push _ back(Cd2);
vect media . push _ back(cd3);
//顯示部分(銷售數量大於1000)
for(int I = 0;我& ltvect media . size();i++)
{
if(vectMedia[I]-& gt;get number()& gt;= 1000)
{
cout & lt& lt銷量超過1000的圖書或光盤。& ltendl
vectMedia[I]-& gt;顯示();
}
}
返回0;
}
//操作效果見圖。