2012年C++专家进阶之二

简介: 2012年C++专家进阶之二 一、      类成员函数的重载、覆盖和隐藏的区别 相同点:都是函数名字相同 序号 区别项 重载 覆盖 隐藏 1 含义 无此一说 主要方便编写代码,函数可以重名 ...

2012C++专家进阶之二

一、      类成员函数的重载、覆盖和隐藏的区别

相同点:都是函数名字相同

序号

区别项

重载

覆盖

隐藏

1

含义

无此一说

主要方便编写代码,函数可以重名

派生类函数覆盖基类函数

指派生类的函数屏蔽了与其同名的基类函数

2

范围

相同范围

不同的范围

不同的范围

3

都在同一个类中

分别位于派生类与基类

分别位于派生类与基类

4

参数

不同

相同

无所谓

5

Virtual关键字

无所谓,也就是可有可无

必须有

并且是基类函数必须有virtual关键字

1.参数不相同,不论基类函数有无virtual关键,基类的函数将被隐藏

2.参数相同,但是基类函数没有virtual关键字,基类的函数被隐藏

6

作用

派生类函数覆盖基类函数

派生类函数隐藏基类函数

程序代码,清晰解读这3个极易混淆的概念:

if(函数名称相同)

{

     if(同一个类中)  //范围相同

     {

          if(参数不相同)//

         {

            printf(“这就是重载的概念”);//

        }

    }

    else if(一个派生类 && 一个是基类) // 分属两个不同的类

   {

         if(参数相同)

         {

                if(基类函数有关键字virtual)

               {

                  printf(“这就是覆盖的概念”); 

              }

             else

              {

                  printf(“这就叫隐藏”);

              }

          }

          else

          {

               printf(“这就叫隐藏”);

          }

   } 

}

总结

1.重载、覆盖、隐藏是3个概念;

2.满足哪些具体的条件,才能叫重载、覆盖或者隐藏呢;

3.覆盖与隐藏的本质,就是基类函数不工作,工作的是派生类函数;

4.重载是针对一个类而言的概念,参数必须不同;

5.覆盖是针对基类、派生类而言,也就是有继承关系的类而言,并且必须带virtual关键字,参数要相同;

6隐藏是针对基类、派生类而言,也就是有继承关系的类而言,只要不是覆盖,必然是隐藏;

如果您跟人家讲不清这3个概念,就写一段代码吧!代码就是我们的沟通交流的语言。他懂的!!!!!
相关文章
|
编译器 C++
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
274 1
|
安全 算法 C语言
【C++进阶】深入STL之string:掌握高效字符串处理的关键
【C++进阶】深入STL之string:掌握高效字符串处理的关键
【C++进阶】深入STL之string:掌握高效字符串处理的关键
|
存储 算法 程序员
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
【C++进阶】深入STL之 栈与队列:数据结构探索之旅
|
编译器 C++
C++模板进阶
C++模板进阶
194 1
|
算法 安全 编译器
【C++进阶】模板进阶与仿函数:C++编程中的泛型与函数式编程思想
【C++进阶】模板进阶与仿函数:C++编程中的泛型与函数式编程思想
|
存储 算法 程序员
【C++进阶】深入STL之vector:构建高效C++程序的基石
【C++进阶】深入STL之vector:构建高效C++程序的基石
|
编译器 C++
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
|
存储 缓存 编译器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
|
C++ 容器
【C++进阶】深入STL之list:高效双向链表的使用技巧
【C++进阶】深入STL之list:高效双向链表的使用技巧
|
编译器 C++ 容器
【C++进阶】深入STL之vector:深入研究迭代器失效及拷贝问题
【C++进阶】深入STL之vector:深入研究迭代器失效及拷贝问题