C++面向物件程式設計50道程式設計題(第14題)
阿新 • • 發佈:2018-12-09
C++面向物件程式設計50道程式設計題(第14題)
摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。
本專輯為程式設計入門者、高校計算機軟體專業學習或複習提供C++程式設計題庫。
讀者請先獨立思考哦,再與參考程式進行比對檢查。
一、問題描述
二、考察內容
基本面向物件概念,理解虛擬函式的定義,並應用整合虛擬函式重寫方法,簡單的數學運算。
三、難度等級
難度等級:★★★☆☆
四、參考程式
#include <iostream.h> class container{ protected: double radius; public: container(double radius) { container::radius=radius; } virtual double surface_area()=0; //純虛擬函式 virtual double volume()=0; //純虛擬函式 }; class cube:public container //定義正方體類 { public: cube(double radius):container(radius){ }; double surface_area() { return radius*radius*6; } double volume() { return radius*radius*radius; } }; class sphere:public container //定義球體類 { public: sphere(double radius):container(radius){ }; double surface_area() { return 4*3.1416*radius*radius; } double volume() { return 3.1416*radius*radius*radius*4/3; } }; class cylinder:public container //定義圓柱體 { double height; public: cylinder(double radius,double height):container(radius) { cylinder::height=height; } double surface_area() { return 2*3.1416*radius*(height+radius); } double volume() { return 3.1416*radius*radius*height; } }; void main() { container *p; //定義抽象類指標p cube obj1(10); //建立正方體物件obj1 sphere obj2(6); //建立球體物件obj2 cylinder obj3(4,5); //建立圓柱體物件obj3 p=&obj1; //指標p指向正方體物件obj1 cout<<"輸出結果:"<<endl; cout<<" 正方體表面積:"<<p->surface_area()<<endl; cout<<" 正方體體積: "<<p->volume()<<endl; p=&obj2; //指標p指向球體物件obj2 cout<<" 球體的表面積:"<<p->surface_area()<<endl; cout<<" 球體的體積: "<<p->volume()<<endl; p=&obj3; //指標p指向圓柱體物件obj3 cout<<" 圓體的表面積:"<<p->surface_area()<<endl; cout<<" 圓體的體積: "<<p->volume()<<endl; }
五、心得感受
可以在評論處寫下思考和程式設計此題的感受