第十三周--动物这样叫
2016-05-24 19:55
411 查看
问题及代码:
运行结果:
知识点总结:
纯虚函数在基类中不进行成员函数的实现,在派生类中进行覆盖实现。
/*copyright 计算机与控制工程学院 完成日期;2016/5/24 作者:马艳艳 文件名称:动物这样叫 输入描述:无 输出描述:各种动物的叫声 */ #include<iostream> 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):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; 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; }
运行结果:
知识点总结:
纯虚函数在基类中不进行成员函数的实现,在派生类中进行覆盖实现。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性