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

(1)成员函数被重载的特征:

        a. 相同作用域

        b. 函数名相同

        c. 参数列表不同

        d. virtual 关键字可有可无

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

        a. 不同作用域(分别位于派生类和基类中)

        b. 函数名相同

        c. 参数相同

        d. 基类中必须要有virtual 关键字

(3)隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

        a. 如果派生类的函数与基类的函数同名,但参数不同,此时无论有没有virtual关键字,基类的函数将被隐藏

        b. 如果派生类的函数与基类的函数同名,并且参数相同,但是基类中没有virtual关键字,此时基类的函数将被隐藏

猜你喜欢

转载自blog.csdn.net/YLH_yanlinghui/article/details/80560497