1、一、函数覆盖发生条件:1、基类函数是虚函数(使用virtual关键字进行声明)2、发生覆盖的两个函数要分别位于派生类和基类中函数的名称和参数列表必须完全相同
2、二、两种函数隐藏的情况:1、派生类的函数和基类的函数完全相同(函数名和参数列表相同),只是懋鲕壶迎基类的函数没有使用virtu锾攒揉敫al关键字。此时的基类的函数被隐藏,而不是覆盖。2、派生类的函数和基类的函数同名,但是参数列表不同。在这种情况下,不管基类是否有virtual关键字,基类的函数都将被隐藏。注意这种情况和函数重载的区别,重载发生在同一个类中。
3、三、函数覆盖和隐藏的区别:函数覆盖只发生在派生类和基类之间,两个函数必须完全相同,并且都是虚函数。那么不属于这种情况的就是隐藏了。