• 第十三周(动物这样叫)


    /*
    *copyright(c) 2015,烟台大学计算机学院
    *All rights reserved。


    *文件名:第十三周(动物这样叫)

    *作者:王忠
    *完毕日期:2015.6.02

    *版本:v1.0
    *
    *问题描写叙述:依据给出的main()函数和执行结果的提示,设计出相关的各个类。注意观察执行结果,提取出每一个类中须要的数据成员。并匹配上须要的成员函数。

    2、显然,Animal设计为抽象类更合适,Animal不须要可以实例化。是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。

    *输入描写叙述:

    *程序输出:

    #include <iostream>
    
    using namespace std;
    
    class Animal
    {
    public:
        virtual void cry()=0;
    };
    class Mouse:public Animal
    {
    public:
        Mouse(string nam,char s):name(nam),sex(s) {}
        void cry()
        {
            if(sex=='m')
                cout<<"我叫"<<name<<",是一仅仅男老鼠,我的叫声是“吱吱吱”。"<<endl;
            else
                cout<<"我叫"<<name<<",是一仅仅女老鼠,我的叫声是“吱吱吱”。

    "<<endl; } protected: string name; char sex; }; class Cat:public Animal { public: Cat(string nam):name(nam) {} void cry() { cout<<"我叫"<<name<<",是一仅仅猫,我的叫声是“喵喵喵”。"<<endl; } protected: string name; }; class Dog:public Animal { public: Dog(string nam):name(nam) {} void cry() { cout<<"我叫"<<name<<",是一仅仅狗,我的叫声是“汪汪汪”。

    "<<endl; } protected: string name; }; class Giraffe:public Animal { public: Giraffe(string nam,char s):name(nam),sex(s) {} void cry() { if(sex=='m') cout<<"我叫"<<name<<",是一仅仅男长颈鹿,脖子太长不会叫。

    "<<endl; else cout<<"我叫"<<name<<",是一仅仅女长颈鹿。脖子太长不会叫。

    "<<endl; } protected: string name; char sex; }; int main( ) { Animal *p; Mouse m1("Jerry",'m'); p=&m1; p->cry(); Mouse m2("Jemmy",'f'); p=&m2; p->cry(); Cat c1("Tom"); p=&c1; p->cry(); Dog d1("Droopy"); p=&d1; p->cry(); Giraffe g1("Gill",'m'); p=&g1; p->cry(); return 0; }


    抽象类不能产生对象,为什么能产生一个指针呢
  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7103395.html
Copyright © 2020-2023  润新知