c++程序设计中的多态与虚函数知识点
生活随笔
收集整理的這篇文章主要介紹了
c++程序设计中的多态与虚函数知识点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.前言
如上
二.內容
編寫一個程序,聲明抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函數printArea輸出以上三者的面積,3個圖形的數據在定義對象時給定。
三.代碼
#include<iostream> #include<math.h> using namespace std; class Shape{//抽象類Shape public: virtual void printArea()=0;//顯示面積 }; class Circle:public Shape{//公用派生類 public:Circle(double r);//構造函數 virtual void printArea();//顯示圓的面積private:double radius;//半徑 };Circle::Circle(double r){//構造函數 radius=r; } void Circle:: printArea(){//顯示圓的面積cout<<3.14159*radius*radius<<endl;; }class Rectangle:public Shape{//公用派生類Rectangle public:Rectangle(double a,double b);//構造函數virtual void printArea();//顯示矩形的面積private:double x;//矩形的長double y;//矩形的寬 };Rectangle::Rectangle(double a,double b){//構造函數x=a;y=b; }void Rectangle:: printArea(){//顯示矩形的面積cout<<x*y<<endl;; }class Triangle:public Shape{//公用派生類Triangle public:Triangle(double a1,double b1,double c1);//構造函數virtual void printArea();//顯示矩形的面積private://三角形的三邊 double a; double b;double c; };Triangle::Triangle(double a1,double b1,double c1){//構造函數a=a1;b=b1;c=c1; }void Triangle:: printArea(){//顯示矩形的面積double p;p=(a+b+c)/2;cout<<sqrt(p*(p-a)*(p-b)*(p-c))<<endl; }int main(){Shape *s;Circle c(12.6);Rectangle r(4.5,8.4);Triangle t(3,4,5);s=&c;cout<<"area of circle:";s->printArea();s=&r;cout<<"area of rectangle:";s->printArea() ;s=&t;cout<<"area of triangle:";s->printArea() ;return 0; } 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的c++程序设计中的多态与虚函数知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows删除指定时间之前指定后缀名
- 下一篇: 钓鱼基础设施的应用分析(钓鱼邮件利用、G