《VC++深入详解》作者:孙鑫
学习笔记
·函数覆盖的条件
1.基类函数必须是虚函数(使用virtual关键字进行声明);
2.发生覆盖的两个函数要分别位于派生类和基类中;
3.函数名称与参数列表必须完全相同。
(概括:首先基类函数有virtual关键字,两个分别在基类和派生类中,名称列表都相同)
·函数隐藏的条件
1.派生类的函数与基类的函数完全相同(函数名和参数列表都相同),只是基类的函数没有使用virtual关键字。此时基类的函数将被隐藏,而不是被覆盖;
2.派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类函数都将被隐藏。注意这种情况与函数重载的区别,重载发生在同一个类中。
(概括:两种情况,第一种,名称参数列表都完全相同,但是基类函数没有virtual关键字;第二种函数名称相同,参数列表不同,且两个函数分别在基类和派生类中)