posts - 2, comments - 4, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

C++中重载、覆盖和隐藏的区别

Posted on 2009-03-21 15:43 kang 阅读(829) 评论(0)  编辑 收藏 引用 所属分类: 笔记

1、重载是指在同一个类中函数名相同,但参数类型或参数个数不同。对于只有返回值类型不同,大部分编译器不支持。同时,重载函数中切记默认参数的使用,如:int input();与int input(int num=0);在使用input()函数时,编译器不知道调用哪一个函数,而在编译时产生错误。
 重载可用vitrual关键字修饰,也可不用。
2、覆盖是指在基类与其派生类之间,函数的声明一致(参数与返回值类型,以及参数个数),同时基类函数用vitual关键字修饰。
3、隐藏是指在基类与其派生类之间,若派生类的函数与基类的函数同名,返回值和参数类型个数也一致,而基类中该函数并未用virtual关键字修饰,此时基类的函数将被隐藏。若基类的函数已用或未用virtual关键字修饰,只要派生类中存在与其同名函数,在返回值或参数类型或个数上不同,基类的函数将被隐藏。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理