覆盖任何一个基类的重载方法之后,该方法的其他版本都会被隐藏;如果不希望被隐藏,就继续覆盖其他的方法;这个就像构造函数一样,你自己自定义类构造函数,那么系统不会再提供任何构造函数.我们可以看看如下例子
#include <iostream> using namespace std; class A { public: void fun() const { cout<<"A"<<endl; } void fun(int i) const { cout<<"A+"<<i<<endl; } }; class B:public A { public: void fun() const { cout<<"B"<<endl; } /* void fun(int i) const { cout<<"B+"<<i<<endl; } */ }; int main() { B b; b.fun(); //b.fun(1); int n; cin>>n; return 0; }
这里基类的方法fun(int)被隐藏了,如果不想被隐藏,就继续覆盖,代码中的注释就是对fun(int)覆盖的覆盖
作者: 林羽飞扬
出处:http://www.cnblogs.com/zhengyuhong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留作者信息,且在文章页面明显位置给出原文连接