C++概念类——函数的覆盖和隐藏

《VC++深入详解》作者:孙鑫

学习笔记

 

 

·函数覆盖的条件

 

1.基类函数必须是虚函数(使用virtual关键字进行声明);

 

2.发生覆盖的两个函数要分别位于派生类和基类中;

 

3.函数名称与参数列表必须完全相同。

 

(概括:首先基类函数有virtual关键字,两个分别在基类和派生类中,名称列表都相同)

 

 

 

 

·函数隐藏的条件

 

1.派生类的函数与基类的函数完全相同(函数名和参数列表都相同),只是基类的函数没有使用virtual关键字。此时基类的函数将被隐藏,而不是被覆盖;

 

2.派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类函数都将被隐藏。注意这种情况与函数重载的区别,重载发生在同一个类中。

 

(概括:两种情况,第一种,名称参数列表都完全相同,但是基类函数没有virtual关键字;第二种函数名称相同,参数列表不同,且两个函数分别在基类和派生类中)

上一篇:前端开发之React框架入门学习


下一篇:2021-2022-1 20211329 错题总结