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;  
    }  


    运行结果:


  • 相关阅读:
    Fix RICHTX32.OCX Issue on Windows 7
    Solved: c:\windows\system32\config\systemprofile\desktop
    递归的现实应用
    Win 8 app 获取窗口的宽度和高度, 本地化, 及文本读取
    均匀设计U Star 665
    GridView.ScrollIntoView() doesn't work
    XML节点访问与更新
    Keyboard supports in Software Testing
    WordPress程序备受喜爱的原因:十八般武艺
    paypal注册教程(PP注册教程)paypal使用方法
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232197.html
Copyright © 2011-2022 走看看