zoukankan      html  css  js  c++  java
  • 类class2013第十四周上机任务【项目2 抽象Shape类】

    文章结束给大家来个程序员笑话:[M]

    /*
    * Copyright (c) 2013, 烟台大学计算机学院
    * All rights reserved.
    * 文件名称:test.cpp
    * 作者:樊露露
    * 完成日期:2013 年 5 月 31 日
    * 版本号:v1.0
    *
    * 输入描述:无
    * 问题描述:
    * 程序输出:
    * 问题分析:
    * 算法计划:略
    */
    #include <iostream>
    using namespace std;
    #define PI 3.1415926
    class Shape
    {
    public:
        virtual double area()
        {
            return 0;
        }
    };
    class Circle:public Shape
    {
    public:
        Circle(double r0):r(r0){};
        double area();
    private:
        double r;
    };
    double Circle::area()
    {
        return PI*r*r;
    }
    class Rectangle:public Shape
    {
        public:
        Rectangle(double c0,double k0):c(c0),k(k0){};
        double area();
    private:
        double c;
        double k;
    };
    double Rectangle::area()
    {
        return c*k;
    }
    class Triangle:public Shape
    {
    public:
        Triangle(double c0,double k0):c(c0),k(k0) {};
        double area();
    private:
        double c;
        double k;
    };
    double Triangle::area()
    {
        return 0.5*c*k;
    }
    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;
    }
        每日一道理
    悲观的人,先被自己打败,然后才被生活打败;乐观的人,先战胜自己,然后才战胜生活。悲观的人,所受的痛苦有限,前途也有限;乐观的人,所受的磨难无量,前途也无量。在悲观的人眼里,原来可能的事也能变成不可能;在乐观的人眼里,原来不可能的事也能变成可能。悲观只能产生平庸,乐观才能造就卓绝。从卓绝的人那里,我们不难发现乐观的精神;从平庸的人那里,我们很容易找到阴郁的影子。

        
    类和class

        在这里碰到一些问题;

        下面定义Shape函数时,虚函数的定义为:

    class Shape
    {
    public:
        virtual double area()
        {
            return 0;
        }
    };

        
    我本来写成:

    class Shape
    {
    public:
        virtual double area() const=0;
    };

        
    这样写运行的时候会出现错误:

        类和class

        这个不能实例化抽象类是什么东东???

    文章结束给大家分享下程序员的一些笑话语录: 爱情观
      爱情就是死循环,一旦执行就陷进去了。
      爱上一个人,就是内存泄露--你永远释放不了。
      真正爱上一个人的时候,那就是常量限定,永远不会改变。
      女朋友就是私有变量,只有我这个类才能调用。
      情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。

    --------------------------------- 原创文章 By
    类和class
    ---------------------------------

  • 相关阅读:
    VB6之GDI+加载PNG图片
    VB6之阴影图层
    VB6之截图
    VB6之调整任务栏按钮的位置
    恐怖的ifdown eth0;0
    VB6之WM_COPYDATA
    删除整个链表
    digest 词根 gest
    new和delete
    static, const
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3111324.html
Copyright © 2011-2022 走看看