码迷,mamicode.com
首页 > 编程语言 > 详细

C++重载、覆盖与隐藏关系

时间:2017-06-18 12:06:53      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:mil   href   隐藏   成员函数重载   microsoft   log   c++   com   tar   

在C++中,成员函数的重载、覆盖与隐藏是很容易混淆的概念,一定要搞清楚他们之间的关系与差别。

1、成员函数重载的特性

(1)相同的范围(即在同一个类中)。也就是意味着基类与派生类之间的成员函数不存在重载的关系;

(2)成员函数名字相同,参数不同;

(3)virtual关键字可有可无。

 

2、覆盖

覆盖是指派生类函数覆盖基类函数,特征是:

(1)不同的范围(分别位于派生类与基类中);

(2)函数的名字相同,参数也相同;

(3)基类函数必须要有virtual关键字修饰。

 

3、隐藏

这里的“隐藏”指的是派生类函数屏蔽了基类中与其同名的成员函数,需要与上面的两个概念区别开来:

(1)如果派生类的函数与基类的函数同名,但是参数不同,此时无论基类函数是否有virtual关键字,基类函数

都将被“隐藏”。

(2)如果派生类函数与基类函数同名,并且参数也相同,但是基类函数没有virtual关键字修饰,那么此时

基类函数将被“隐藏”。

 

这三个关系是非常容易混淆的,一定要注意他们之间的区别、不同之处。

参考博文:http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html

 

C++重载、覆盖与隐藏关系

标签:mil   href   隐藏   成员函数重载   microsoft   log   c++   com   tar   

原文地址:http://www.cnblogs.com/tao-shao/p/7043717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!