试分析函数的重载、函数的覆盖继承和虚函数三者之间的区别

试分析函数的重载、函数的覆盖继承和虚函数三者之间的区别
急!
huwenbo 1年前 已收到1个回答 举报

dotta 种子

共回答了17个问题采纳率:88.2% 举报

简单地说函数的重载只会发生在一个类中
覆盖
1.基函数必须是虚函数
2.发生覆盖的两个函数要分别位于派生类与基类中
3.函数名称与参数列表必须完全相同
由于C++的多态性是通过虚函数来实现的,所以函数的覆盖总是和多态关联在一起
C++多态性体现在虚函数中也就是说编译时无法确定类型,而在运行时根据实际的类型对象调用相应的函数
还有派生类的函数与基类的函数完全相同,只是基类的函数没有使用virtual关键字,此时基类的函数将被隐藏,而不是覆盖
派生类的函数与基类的函数同名,但参数列表不同,在这种情况下,不管基类的函数声明是否有virtual关键字,基类的函数都将被隐藏,注意这种情况与函数重载的区别

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.035 s. - webmaster@yulucn.com