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

本文通过一个C++示例介绍了类的继承、函数覆盖及隐藏的概念,并展示了如何实现多态。示例中包括了基类和派生类的定义,以及不同情况下成员函数的调用行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接看实例:

 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;
     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值