sdut 6-2 多态性与虚函数

sdut 6-2 多态性与虚函数

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

6-2 多态性与虚函数



Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描写叙述

通过本题目的练习能够掌握多态性的概念和虚函数的定义和用法
 
 
要求定义一个基类Pet,它有一个字符指针型数据成员name和一个虚成员函数Speak()用于输出pet的叫声。;派生类Dog和Cat从基类Pet派生而来。

他们从基类继承并又一次改写了speak()函数。分别用于输出Dog类和Cat类的叫声(详细输出内容參考演示样例输出)。要求利用虚函数技术编写代码,使得程序可以输出以下的内容。

输入

输出

输出数据共同拥有3行。本题目要求输出内容必须与演示样例中的同样。

演示样例输入


演示样例输出

How does a pet speak ?
I am a cat,My name is Tom My sound is miao!miao!
I am a dog,My name is Snoppy My sound is wang!wang!

提示

 

来源

 

#include <iostream>

using namespace std;

class Pet
{
public :
    virtual void speak()//定义虚函数
    {
        cout<<"How does a pet speak ?"<<endl;
    }
};

class Cat: public Pet
{
public :
    void speak ()
    {
        cout <<"I am a cat,My name is Tom My sound is miao!miao!"<<endl;
    }
};

class Dog : public Pet
{
public :
    void speak()
    {
        cout<<"I am a dog,My name is Snoppy My sound is wang!wang!"<<endl;
    }
};

int main()
{
    Pet p, *t;//定义Pet类对象的指针t
    Cat c;
    Dog d;

    t = &p;//t指针p
    t->speak();//调用p.speak功能

    t = &c;//t指针c
    t->speak();//调用c.speak功能

    t = &d;//t指针d
    t->speak();//调用d.speak功能

    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117887.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Git远程仓库(2)

    Git远程仓库(2)

    2021年5月23日
    121
  • 怎么新建pytest的ini文件_qt读写配置文件

    怎么新建pytest的ini文件_qt读写配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月28日
    12
  • Linux安装MySQL8.0.11

    Linux安装MySQL8.0.111.去官网下载安装包下载链接:点击打开链接https://dev.mysql.com/downloads/mysql/如果你的系统是32位选择第一个,64位选择第二个也可以用wget下载wgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz…

    2022年5月29日
    32
  • Java线程池参数配置

    Java线程池参数配置在线程池的实际使用中,参数的配置总让人难以把握。在网上搜了一下,主要有以下的方案。跟大家分享。1.基本概念1.1ThreadPoolExecutor的重要参数corePoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时,

    2022年5月23日
    68
  • ipad 运行linux_linux 终端快捷键

    ipad 运行linux_linux 终端快捷键实现的具体步骤如下:1.、cydia安装openssh2、installous安装issh3、进入issh,选addconfigurationdescription:随便填host:localhostport:22login:rootpassword:默认为alpine(这个进入以后可以改)保存,连接4、连接时会出现一个警告,点确认即可于是出现:***-mato-ipad:-root#现在就可…

    2022年9月16日
    0
  • Effective C++学习笔记(Part Two:Item 5-12)[通俗易懂]

    Effective C++学习笔记(Part Two:Item 5-12)

    2022年3月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号