您的位置:首页 > 编程语言 > C语言/C++

C++函数覆盖,重载,隐藏的区别

2016-08-16 13:25 531 查看
c++中函数的覆盖,重载和隐藏之间的关系是很令人头疼的,又是不太容易区分的,现在此总结一下。

范围的不同:函数的重载发生在类内部,而函数的覆盖,也叫函数重写,及函数隐藏发生在类间。也就是说,在同一个类中只会发生函数的重载,而在子类与父类间会发生覆盖和隐藏。

声明方式的不同:在同一个类中,如果声明多个函数,只要它们的函数名相同,就会发生重载,而不管它们的参数列表及参数个数是否相同;当子类中存在与父类同名的函数,它们的参数列表个数,参数类型,返回值类型相同并且有virtual关键字修饰就会发生函数覆盖;当子类与父类有同名函数,但参数个数或参数类型不同,此时无论有无virtual关键字修饰均会发生函数隐藏。

最后在说一点,函数重载是实现多态的基础。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  重载 覆盖 隐藏