c++虚函数与重载

 1 class base{
 2 public:
 3     virtual void f(int n){ cout << "base"<<endl; }
 4 };
 5 class Derived :public base{
 6 public:
 7     void f(int n){ cout << "override" << endl; }
 8     void f(double d)
 9     {
10         cout << "overload" << endl;;
11     }
12 };
13 int main()
14 {
15     Derived de;
16     base *b = &de;
17     b->f(2);
18     b->f(2.0);
19     Derived *d = &de;
20     d->f(2.0);
21     d->f(2);
22 }

输出为:override   override   overload   override

如果子类没有重写基类的虚函数,输出为  base   base  overload   overload

常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)

  

 

posted @ 2017-10-12 14:35  hchacha  阅读(486)  评论(0编辑  收藏  举报