*/
* 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() = 0;
}; class Mouse : public Animal
{
private:
string name;
char sex;
public:
Mouse(string nam, char s):name(nam),sex(s) {}
virtual void cry()
{
cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl;
}
}; class Cat : public Animal
{
private:
string name;
public:
Cat(string nam):name(nam) {}
virtual void cry()
{
cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl;
}
}; 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;
Mouse m1("Jerry",'m');
p=&m1;
p->cry(); //输出: 我叫Jerry,是一只男老鼠,我的叫声是:吱吱吱!
Mouse m2("Jemmy",'f');
p=&m2;
p->cry(); //输出: 我叫Jemmy,是一只女老鼠,我的叫声是:吱吱吱!
Cat c1("Tom");
p=&c1;
p->cry(); //输出: 我叫Tom,是一只猫猫,我的叫声是:喵喵喵!
Dog d1("Droopy");
p=&d1;
p->cry(); //输出: 我叫Droopy,是一条狗狗,我的叫声是:汪汪汪!
Giraffe g1("Gill",'m');
p=&g1;
p->cry(); //输出: 我叫Gill,是男长颈鹿,脖子太长,发不出声音来!
return 0;
}

运行结果:

最新文章

  1. 【开源】.Net 动态脚本引擎NScript
  2. 软件工程(FZU2015)赛季得分榜,第三回合
  3. Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
  4. Django 模版语言详解
  5. Codeforces Round #381 (Div. 2) D. Alyona and a tree 树上二分+前缀和思想
  6. BZOJ3799 : 字符串重组
  7. 使用sqlhelper的简单增删改查
  8. jQuery的touchstart,touchmove,touchend的获取位置
  9. Android:Notification的生成与取消
  10. Leetcode题解(31)
  11. The SSL certificate used to load resources from xxx will be distrusted in M70.
  12. HP DL380服务器RAID信息丢失数据恢复方法和数据恢复过程分享
  13. 补习系列(20)-大话 WebSocket 与 &quot;尬聊&quot;的实现
  14. 实践中 XunSearch(讯搜)的使用教程步骤
  15. 干货 | Elasticsearch 集群健康值红色终极解决方案【转】
  16. NodeJS:(二)基础常用API
  17. BZOJ4001 TJOI2015概率论(生成函数+卡特兰数)
  18. String StringBuffer和StringBuilder区别及性能
  19. pta l1-49(天梯赛座位分配)
  20. Android中的设计模式之观察者模式

热门文章

  1. 14 微服务电商【黑马乐优商城】:day04-项目搭建(一)
  2. Codeforces Round #517 (Div. 2)(1~n的分配)
  3. winform把所有dll打包成一个exe
  4. Pooled genome sequence strategies |representative genome assembly approaches|Domestication|GERP|selective sweep|Hybridization|Introgression|iHS|SNP genotyping arrays|haplotype
  5. Hibernate相关概念及序列化和持久化的区别
  6. oracle时间处理tochar的黑幕坑
  7. JavaScript之Date常用知识点
  8. [USACO09DEC]牛收费路径Cow Toll Paths(floyd、加路径上最大点权值的最短路径)
  9. 一、Shell脚本高级编程实战第一部
  10. 56)PHP,模型类的设计思想