zoukankan      html  css  js  c++  java
  • C++走向远洋——56(项目二1、动物这样叫、虚函数)

    */
     * Copyright (c) 2016,烟台大学计算机与控制工程学院
     * All rights reserved.
     * 文件名:text.cpp
     * 作者:常轩
     * 微信公众号:Worldhello
     * 完成日期:2016年5月29日
     * 版本号:V1.0
     * 问题描述:虚函数
     * 程序输入:无
     * 程序输出:见运行结果
     */
    #include<iostream>
    #include<string>
    using namespace std;
    class Animal  
    {  
    public:  
      virtual void cry()  
        {  
          cout<<"不知哪种动物,让我如何学叫?"<<endl;  
        }  
    };  
    class Mouse:public Animal{      //老鼠
    private:
    	string name;
    	char sex;
    public:
    	Mouse(string nam,char s);
    	virtual void cry()
    	{
    		cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl;
    	}
    };
    Mouse::Mouse(string nam,char s)
    {
    	name=nam;
    	sex=s;
    }
    class Cat:public Animal{
    private:
    	string name;
    public:
    	Cat(string nam);
    	virtual void cry()
    	{
    	   cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl;
    	}
    };
    Cat::Cat(string nam)
    {
         name=nam;
    }
    class Dog : public Animal  
    {  
    private:  
        string name;  
    public:  
        Dog(string nam):name(nam) {}  
        virtual void cry()  
        {  
            cout<<"我叫"<<name<<",是一条狗,我的叫声是:汪汪汪!"<<endl;  
        }  
    };  
    class Giraffe : public Animal  
    {  
    private:  
        string name;  
        char sex;  
    public:  
        Giraffe(string nam,char s):name(nam), sex(s) {}  
        virtual void cry()  
        {  
            cout<<"我叫"<<name<<",是"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl;  
        }  
    };  
      
    int main( ){  
        Animal *p;  
        p = new Animal();  
        p->cry();   
        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;  
    }  


    运行结果:


  • 相关阅读:
    Httpclient的应用
    sql树形结构
    发送邮件
    关于多态的思考
    java集合整体结构
    应用--对HashMap进行排序(转为LinkedHashMap)
    初识POI操作Excel
    常用的开发工具
    [redis]Redis Transaction
    [ajax] quick double or multiple click ajax submit cause chrome explorer's error snatshot
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232197.html
Copyright © 2011-2022 走看看