C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
生活随笔
收集整理的這篇文章主要介紹了
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例、設計一個基類Shapes,包含成員函數display()并聲明為純虛函數。Shapes類公有派生產生矩形類Rectangle和圓類Circle,分別定義display()函數實現其主要幾何元素的顯示。使用抽象類Shapes類型的指針(或引用),當它指向(或引用)某個派生類的對象時,就可以通過它訪問該對象的虛成員函數display()實現動態多態性。
代碼如下:
頭文件:
//頭文件 #include <iostream> #define PI 3.141265 using namespace std; class Shapes { public:virtual void display() = 0; //成員函數dispaly()聲明為純虛函數 };class Rectangle : virtual public Shapes { protected:float x, y; public:float length;float width;Rectangle(){}Rectangle(float a, float b){x = a;y = b;}virtual float getRectangle(){return (x * y);}virtual void display(){cout << "矩形的長為:" << x << endl;cout << "矩形的寬為:" << y << endl;cout << "矩形的面積為:" << getRectangle() << endl;} };class Circle : virtual public Shapes { protected:int r; public:Circle(){}Circle(float R){r = R;}virtual float getCircle(){return PI * r * r;}virtual void display(){cout << "圓的半徑為:" << r << endl;cout << "圓的面積為:" << getCircle() << endl;} };主函數:
//主函數 #include <iostream> #include "頭文件.h" #define PI 3.141265 using namespace std; int main() {Shapes* p;double a = 0, b = 0, r = 0;cout << "請分別輸入矩形的長和寬:" << endl;cin >> a >> b;Rectangle A(a, b);p = &A;p->display();cout << "" << endl;cout << "請輸入圓的半徑:" << endl;cin >> r;Circle B(r);p = &B;p->display();system("pause");return 0; }測試功能:
代碼測試成功!
?
以上就是本次C++的全部內容,感謝您的閱讀和支持,篇幅較長,若有表述或者代碼中的不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!
總結
以上是生活随笔為你收集整理的C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++编程练习:多态实验——利用抽象类和
- 下一篇: 数据库原理与应用(SQL Server)