项目2抽象基类与派生类
生活随笔
收集整理的這篇文章主要介紹了
项目2抽象基类与派生类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
* Copyright (c) 2011, 煙臺大學計算機學院
* All rights reserved.
* 作 者:王靜
* 完成日期:2013 年 6 月 2 日
* 版 本 號:v1.0
* 輸入描述:
* 問題描述:寫一個程序,定義抽象基類Shape,由它派生出3個派生類,Circle(圓形)、Rectangle(矩形)、Triangle(三角形)
* 程序輸出:
* 問題分析:
* 算法設計:略
*/
#include <iostream>
#define pi 3.14
using namespace std;
class Shape
{
public:virtual double area() {return 0;}//當const =0;不可執行,為什么??
};
class Circle:public Shape
{public:Circle(double r0):r(r0){}double area(){double a;a=pi*r*r;return a;}double r;
};
class Rectangle:public Shape
{public:Rectangle(double w,double l):wide(w),length(l){}double area(){return wide*length;}double wide;double length;
};
class Triangle:public Shape
{public:Triangle(double h,double s):high(h),side(s){}double area(){return side*high/2;}double high;double side;
};
int main()
{Circle c1(12.6),c2(4.9);//建立Circle類對象c1,c2,參數為圓半徑Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle類對象r1,r2,參數為矩形長、寬Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle類對象t1,t2,參數為三角形底邊長與高Shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定義基類指針數組pt,使它每一個元素指向一個派生類對象double areas=0.0; //areas為總面積for(int i=0; i<6; i++){areas=areas + pt[i]->area();}cout<<"totol of all areas="<<areas<<endl; //輸出總面積return 0;
}
運行結果:
總結
以上是生活随笔為你收集整理的项目2抽象基类与派生类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php解析其他php文件_PHP Inc
- 下一篇: 127.0.0.1 zxt.php_ph