C++语言进阶心得之一二

来源:互联网 发布:网络博客游戏破解之法 编辑:程序博客网 时间:2024/05/20 01:08

1、一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?

只要基类在定义成员函数时已经声明了virtual关键字,在派生类实现的时候覆盖该函数时,virtual关键字可加可不加,不影响多态的实现。容易与隐藏混淆:隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下: 1) 如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。 2) 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。