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