类继承中的重载问题
来源:互联网 发布:pc蛋蛋预测php源码 编辑:程序博客网 时间:2024/05/23 01:20
exceptional C++ 上看来的。
#include <iostream>#include <complex>using namespace std;class base{public: void f(int){ cout<<"f(int)"<<endl; } void f(double){ cout<<"f(double)"<<endl; }};class derived : public base{public: //不同作用域 using base::f; void f(complex<double> ){ cout<<"complex<double>"<<endl; }};int main(){ derived d; d.f(1.0); return 0;}
基类与派生类的函数并不是默认在同样的作用域中。 如果派生类与基类的函数名相同,那么派生类的函数会直接覆盖基类的函数。
如果试图令基类与子类的函数重载, 就需要利用
using base::f 这个语句。
在上面的代码中,如果没有这个语句, 程序的输出会是
complex<double>, 因为C++不会将这个调用与基类的函数进行匹配。 这个结果的产生是由于double 到 complex<double> 的隐式转换。
- 类继承中的重载问题
- 继承层次中的函数重载问题
- 类继承中的重载,覆盖和隐藏
- 继承中的重载
- Java中的继承、重载、覆盖
- C++ 之继承中的重载
- 重载函数的继承问题
- c++ 类继承中的隐藏、覆盖、重载与using使用
- C++继承(6) - 隐藏基类中的所有重载函数
- C++函数重载(5) - 重载函数在类继承中的行为
- C++继承中的重载、覆盖和隐藏
- C++继承中的重载,覆盖和隐藏
- C++继承中的重载、覆盖和隐藏
- Objective-C中的继承和重载
- [转载] 继承中的重载、覆盖和隐藏
- java 继承中的重写、重载、多态
- java中的继承-子类继承父类的权限问题
- 类的继承与重载
- USB设备名字
- HDU3001——Travelling(状态压缩DP)
- c# 委托和委托事件
- QT资源机制的使用
- SQL存储过程和事务的应用
- 类继承中的重载问题
- android adb常用指令
- 静态代理模式
- win7 64bit环境下读取csv,txt等到datatable
- 盘点开发者须知的25个免费数据可视化工具
- android studio使用教程- Win7下搭建
- 如何配置虚拟主机
- 终于收到阿里巴巴的笔试通知了
- 僵尸进程