龙空技术网

「每天一道面试题」重载隐藏重写(覆盖)

i白学长 225

前言:

今天看官们对“重载的返回值类型”大约比较关心,看官们都需要了解一些“重载的返回值类型”的相关文章。那么小编也在网上网罗了一些关于“重载的返回值类型””的相关知识,希望小伙伴们能喜欢,朋友们快快来了解一下吧!

重载隐藏重写(覆盖)

C++ 中,重载、隐藏、重写(覆盖)的区别是什么?

重载同一个类中参数类型,参数个数或参数顺序不同但函数名和返回值相同的函数构成重载。返回值类型不同不构成重载。隐藏派生类的函数屏蔽了与其同名的基类函数。只要同名函数,不管参数列表是否相同,基类函数都会被隐藏。重写(覆盖)派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有函数体不同(花括号内)。派生类调用时会调用派生类的重写函数,不会调用被重写函数。重写的基类中被重写的函数必须有 virtual 修饰。总结重载是发生在单个类里面,仅仅是参数的个数,类型以及顺序不一样。隐藏是发生在子父类之间,父类的函数是非 virtual 的,子类的函数只需要函数名和父类的一致,不管参数和返回类型,父类的函数都会被隐藏。重写是发生在子父类之间,父类的参数一定是 virtual 的,并且子类的函数原型和父类的完全一样,即返回类型,参数个数,顺序,类型完全一样,此时发生重写。这就是多态。

本文参考:嗨客网()

标签: #重载的返回值类型 #重载的返回值类型需要一致吗