C++:重载和覆盖
来源:互联网 发布:nginx upstream 别名 编辑:程序博客网 时间:2024/06/06 13:58
覆盖(override):如果派生类创建的成员函数具有与基类中的成员函数相同的返回类型和签名,但是具有新的实现
example:
class Mammal: void Sleep() const {std::cout<<"I'm sleeping\n";} void Sleep(int time) const {std::cout<<"I'm sleeping"<<time<<"\n";} void Sleep(int time, int week) {std::cout<<"I'm sleeping"<<time<<week<<"\n";}class Dog:public Mammal: void Sleep() const {std::cout<<"you're sleeping\n";}
Mammal中重载了Sleep()方法
Dog中覆盖了Sleep()方法
注意:Dog覆盖了Sleep()方法,会导致隐藏了Mammal中使用Sleep这个名称的所有方法,即Sleep(),Sleep(int time), Sleep(int time, int week)
2.调用基类方法
Dog fido;Mammal bigAnimal;bigAnimal.Sleep()bigAnimal.Sleep(7)bigAnimal.Sleep(7,8)fido.Sleep() //调用自己的Sleep方法fido.Sleep(6) //error, Mammal的Sleep(int time)被隐藏,fido.Mammal::Sleep(6) //正确,使用基类名称,调用隐藏的基类方法
0 0
- C++:重载和覆盖
- C++:重载、覆盖和隐藏
- 【C#】——重载和重写、覆盖
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- c++(重载、覆盖、隐藏)
- thinkphp实现数据分页
- iOS 持续集成系列
- Springmvc 并发访问的线程安全性问题
- Decorator设计模式
- 释疑の资源短缺DATASET_CANT_CLOSE
- C++:重载和覆盖
- Linux Kernel 设备驱动之I2C之client读写数据API
- go coroutine goroutine
- mysql小记
- ARTSPConnection::receiveLine
- 神经网络
- FaaS, Fission and K8S
- git 学习笔记
- JavaScript类型转换大全