C++的重载给人留下了非常深刻的影响,原因是重载的条件很值得注意:函数名相同,参数列表不相同的两个函数构成重载函数,而无关乎二者的返回值。

但是C++中的函数重写又是另一码事。标准规定:只要函数名相同,就会被重写。重写之后用子类访问“本该被继承的”父类的函数,将会调用子类的同名函数,而与父类中有什么样的同名函数无关(也就是当它不存在)。例如:

#include <iostream>
using namespace std; class A
{
public:
int func()
{
return ;
}
}; class B: public A
{
public:
char func(int a)
{
return '';
}
}; main()
{
B b;
cout <<b.func()<<endl;
cout <<b.func()<<endl;
}

上面这段代码中,main函数中的b.func(1)将成功被调用,而b.func()将报错:

Untitled1.cpp||error: no matching function for call to 'B::func()'|

因为此时从父类那里集成而来的int func()已然被重写,即使参数列表不同,即使返回值也不同。int func()在子类B中早已不复存在了。

最新文章

  1. JAVA类的静态加载和动态加载以及NoClassDefFoundError和ClassNotFoundException
  2. 剑指offer-二叉树的深度
  3. 在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
  4. java 深度探险 java 泛型
  5. WINDOWS黑客基础(3):注入代码
  6. easily add files to META-INF in NetBeans
  7. 看懂SqlServer查询计划
  8. YUM配置
  9. android app启动过程(转)
  10. 【超级干货】手机移动端WEB资源整合:转载
  11. Redis系列一(Redis环境的搭建)
  12. SQL_CALC_FOUND_ROWS equivalent in PostgreSQL
  13. [Jave - JDBC] executeUpdate &amp; executeQuery &amp; execute
  14. UNIX高级环境编程(14)文件IO - O_DIRECT和O_SYNC详解 &lt; 海棠花溪 &gt;
  15. 一个第三方Dart库导致的编译错误!
  16. springboot maven 部署
  17. 步步为营-63-Asp.net-get与post
  18. css3背景颜色渐变属性 兼容性测试基础环境为:windows系统;IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+
  19. 阿里面试的一点感受 阿里ali片式经历和面试题
  20. aaronyang的百度地图API之LBS云 笔记[位置数据 geotable]

热门文章

  1. .net反编译工具Reflector下载(转)
  2. Console.Write格式化输出
  3. manjaro中okular中的pdf文件无法显示中文
  4. Viewpager禁止滑动
  5. bzoj 1571: [Usaco2009 Open]滑雪课
  6. .Net 多线程小结
  7. MD5 algorithm in Objective C
  8. 【原创】Android View框架总结(三)View工作原理
  9. 【hibernate】hibernate不同版本的命名策略
  10. Protobuf C#