題組內容
二、void virtualReference ( const Obj &baseRef )
{ baseRef.printname( );
cout << “
Area =” << baseRef.area( )
<< “
Volume = ” << baseRef.vol( )
<< “
Price = ” << baseRef.Price( ) << “
”; }
假設某公司所處理之物品主要為圓盤物件,液體溶劑,以及長方體磚塊三種,請設
計三個類別(class)Plate,Liquid 及 Cube 分別用以代表圓盤物件、液體溶劑、以
及長方體磚塊。並利用 Virtual Class 設計類別 Obj 以實作 polymorphism,使得上面
所定之 VirtualReference 可依所傳入之物品為圓盤物件,液體溶劑,或長方體磚塊分
別印出所需之不同資訊。其中 baseRef.area( ) 必須印出物件之面積,baseRef.vol( )
必須印出物件之體積,baseRef.Price( ) 必須印出物件之售價。任何物件若無某一特
質則需印出 0.0 。例如:若無面積,則印出 Area = 0.0。在 printname( )中,圓盤物
件要印出 circular,液體溶劑印出 liquid,長方體磚塊印出 cubic。此三物品之特性及
必須印出之資訊分別為: