8.2 方孔錢幣類設計-類組合
阿新 • • 發佈:2018-11-15
這個題跟8.1的類似 作為練習獨立思考一下吧
前置程式碼::
#include <iostream> #include <string> using namespace std; class Square//正方形類 { private: double x;//邊長 public: Square(double i=0)//帶預設引數值的建構函式 { x=i; } double getx() { return x; } }; class Circle//圓類 { private: double r;//半徑 public: Circle(double i=0)//帶預設引數值的建構函式 { r=i; } double getr() { return r; } };
後置程式碼::
int main()
{
Square x(0.2);
Circle y(1.25);
Coin m(0.3,1.3,5.13,"開元通寶","銀"),n(x,y,3.5,"五銖","銅");
m.Show();
n.Show();
return 0;
}
期待的輸出::
錢幣文字=開元通寶↵
材質=銀↵
直徑=2.6釐米↵
方孔邊長=0.3釐米↵
重量=5.13克↵
錢幣文字=五銖↵
材質=銅↵
直徑=2.5釐米↵
方孔邊長=0.2釐米↵
重量=3.5克↵
coin類的設計::
class Coin { private: Square x; Circle y; double m; string name; string cl; public: Coin(double a,double b,double c,const string &d,const string &e) :x(a),y(b) { m=c; name=d; cl=e; } Coin(Square &x,Circle &y,double c,const string &d,const string &e) :x(x),y(y) { m=c; name=d; cl=e; } void Show() { cout<<"錢幣文字="<<name<<endl; cout<<"材質="<<cl<<endl; cout<<"直徑="<<y.getr()*2<<"釐米"<<endl; cout<<"方孔邊長="<<x.getx()<<"釐米"<<endl; cout<<"重量="<<m<<"克"<<endl; } };