博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于继承的多态
阅读量:5216 次
发布时间:2019-06-14

本文共 745 字,大约阅读时间需要 2 分钟。

#include<iostream>

using namespace std;

class Animal { public:  Animal(){}  

Animal(int weight, int height){}  

void eat(){ cout << "animal eat" << endl; }  

void sleep(){   cout << "animal sleep" << endl;  }  

virtual void breath(){   cout << "animal breath" << endl;  }  

~Animal(){}; };

class Fish:public Animal { public:  Fish() :Animal(40, 40){}  

void breath()  {   cout << "Fish bubble" << endl;  }

 ~Fish(){}; };

int main(){  

/*Animal *An;  

Fish fh;

 An = &fh;//将Fish类的地址赋给An之后,但An->breath()调用的确是父类的breath*/

 Animal *An=new Fish();  此处将引起多态

if (An != NULL){   delete An;   return 0;  }  

//An->breath();

 //fh.breath();

 system("pause"); }

允许将子类类型的指针赋值给父类类型的指针。

子类的指针赋给父类时,若基类中的同名函数未能声明为虚函数,若仍用父类的指针指向同名函数,编译器会调用父类中的函数,此时会引起多态。

 

转载于:https://www.cnblogs.com/defen/p/4503995.html

你可能感兴趣的文章
[Nikon D80]南门老家
查看>>
设计模式之Command(命令)(转)
查看>>
面试题:把负数移动到正数之前,不能改变正负数原先的次序
查看>>
Griview中DataKeyNames的用法(多个主键)?
查看>>
2014年最新前端开发面试题(题目列表+答案 完整版)
查看>>
《图解 HTTP 》阅读 —— 第三章
查看>>
maven jetty
查看>>
CentOS7使用httpd apache 和firewalld打开关闭防火墙与端口
查看>>
Angular Reactive Form-响应式表单验证
查看>>
Apache参数的优化(转)
查看>>
laravel中遇到的实战项目小问题
查看>>
YAML_04 用user模块添加用户,并修改密码
查看>>
SharePoint 2010工作流中标准的Elements.xml文件及说明
查看>>
一步步学习SPD2010--第八章节--理解工作流(10)--导出工作流到Visio绘图
查看>>
一步步学习SPD2010--第十一章节--处理母版页
查看>>
SharePoint 2010 At Work--SharePoint 2010 Tab Page 创建选项卡页面
查看>>
[LeetCode] 331. Verify Preorder Serialization of a Binary Tree_Medium tag: stack
查看>>
工具栏
查看>>
JavaScript 判断复选框是否选中并取出值
查看>>
duilib加消息
查看>>