c++ 重载/覆盖/隐藏的区别

直接看实例:

 35 class A
 36 {
 37 public:
 38     void f(){cout <<"call f() by class A" << endl;};
 39     virtual void g(){cout << "call g() by class A"<< endl;};
 40     void k(int a){cout << "call k(int) by class A"<< endl;};
 41 };
 42 class AA:public A
 43 {
 44 public:
 45     void f(int){cout << "call f() by class AA" << endl;};//基类的f()被隐藏
 46     void g(){cout << "call g() by class AA " << endl;};//基类的虚函数被覆盖:函数名、参数完全相同,返回值不做强制要求

 47     void k(int a, int b){f(a);cout << "call k(int, int) by class AA" << endl;};//基类的k(int a)被隐藏

          void f(char){cout << "call f() overload by class AA" << endl;};//函数的重载

 48 };
 49 
 50 
 51 int main()
 52 {   
 63     AA aa;

 64     aa.f(20);

           aa.f('a');

 65     aa.g();
 66     aa.k(10,20);
 67     //aa.k(30); 
        return 0;
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值