c++多态规定,基类和派生类中同名虚函数的函数名、返回值类型、函数参数个数及参数类型等必须完全相同。如果基类的虚函数后面没有加const,派生类同名的函数后面加了const,那么派生类的函数没有起到虚函数的作用(前提是除了const外,函数的其他参数一样);同理,如果基类的虚函数后面加了const,而派生类同名函数后面没有加const,派生类的同名函数也没有起到虚函数的作用;如果基类的虚函数后面加了const,派生类同名函数也加了const,那么派生类同名函数起到了虚函数的作用。
c++规定,同一个函数加不加const,经过编译器编译之后是两个不同的函数,所以基类和派生类的同一个函数,后面加不加const,编译后是两个不同的函数,也就不存在多态。