细说C++覆盖方法和重载方法
来源:互联网 发布:淘宝官方下载电脑版 编辑:程序博客网 时间:2024/04/30 13:21
很多初学者朋友可能都傻傻分不清覆盖方法和重载方法的区别是什么,那么小雨今天就以实例来给朋友们讲解一下。
首先说覆盖方法,让我们看下面的例子:
class Animal{public: void move();}class Pig : Animal{public: void move();}class Bird : Animal{public: void move();}void Animal :: move(){ std::cout << "我会动哦\n";}void Pig :: move(){ std::cout << "我会跑哟\n";}void Bird :: move(){ std::cout << "我会飞呢\n";}
相信各位看完这个程序就明白的差不多了,我们声明Animal这个类,子类Pig和Bird都继承自Animal类,猪和鸟动的方式自然不同,所以要对父类方法进行覆盖,首先在子类中将要覆盖的方法再声明一次,再实现一次,这就是方法覆盖。
而重载方法则不同,我们对上面的例子中的父类做一下修改:
class Animal{public: void move(); void move(int movCount); }void Animal :: move(){ std::cout << "我会动哦\n";}void Animal :: move(int movCount){ std::cout << "我移动了"<< movCount <<"这么远哦\n";}
上述就是方法重载,即同一个函数名,参数不同,实现不同的功能,move(int movCount)可
以显示出移动的距离。
那我们现在来做总结:
·方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。
·方法覆盖要求返回类型必须一致,而方法重载对此不做限制。
谢谢!
3 0
- 细说C++覆盖方法和重载方法
- 方法覆盖和方法重载
- 方法重载和方法覆盖
- 【C++】【学习笔记】【019】覆盖方法和重载方法
- 【c++】访问控制、覆盖方法和重载方法
- java方法重载和覆盖
- 方法的重载和覆盖
- Objective-C 中方法的重载,覆盖和隐藏
- Objective-C 的方法原型及重载和覆盖
- Objective-C 的方法原型及重载和覆盖
- 方法重载、方法覆盖和多态
- java方法重载和方法覆盖
- Java---方法重载和方法覆盖
- 方法重载和方法覆盖的区别
- java方法覆盖和方法重载
- C#:区分:重写、覆盖和重载以及虚方法和抽象方法
- java方法的重载、覆盖和隐藏
- C#之方法重载和覆盖
- 分布式文件系统(未完)
- Kali Linux 安全渗透教程<第六更>1.4.2 安装至USB驱动器Kali Linux
- Android清理设备内存详细完整示例(一)
- Android MediaPlayer架构图解
- MySql安装后各种错误解决办法
- 细说C++覆盖方法和重载方法
- 条款23:宁以no-member、no_friend替换member函数
- jQuery移除元素自动解绑事件实现
- 点击返回键2次退出程序
- Javascript中Window.open参数详解
- Photoshop CS6新特性上手(一、二)
- Cocos2dx 学习记录 [2] 关于混合和高亮一些知识点的体会
- vim添加显示行号,自动缩进功能
- java基础详解之 构造方法详解