C++子类父类成员函数的覆盖和隐藏实例详解

C++子类父类成员函数的覆盖和隐藏实例详解,第1张

概述C++子类父类成员函数的覆盖和隐藏实例详解函数的覆盖  覆盖发生的条件:

C++子类父类成员函数的覆盖和隐藏实例详解

函数的覆盖

   覆盖发生的条件:

(1) 基类必须是虚函数(使用virtual 关键字来进行声明)
(2)发生覆盖的两个函数分别位于派生类和基类
(3)函数名和参数列表必须完全相同

函数的隐藏

    隐藏发生的条件:

(1)子类和父类的函数名相同,参数列表可以不一样

看完下面的例子就明白了

#include "iostream" using namespace std; class CBase{   public:       virtual voID xfn(int i){           cout << "Base::xfn(int i)" << endl; //1       }       voID yfn(float f){           cout << "Base::yfn(float)" << endl; //2       }       voID zfn(){           cout << "Base::zfn()" << endl; //3       } }; class CDerived : public CBase{   public:       voID xfn(int i){         cout << "Derived::xfn(int i)" << endl; //4       }       voID yfn(int c){         cout << "Derived:yfn(int c)" << endl; //5       }       voID zfn(){         cout << "Derived:zfn()" << endl; //6       } }; voID main(){     CDerived d;     CBase *pb = &d;     CDerived *pd = &d;     pb->xfn(5); //覆盖     pd->xfn(5); //直接调用      pb->yfn(3.14f); //直接调用     pd->yfn(3.14f); //隐藏      pb->zfn(); //直接调用     pd->zfn(); //隐藏 } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的C++子类父类成员函数的覆盖和隐藏实例详解全部内容,希望文章能够帮你解决C++子类父类成员函数的覆盖和隐藏实例详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1244817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存