首页 > 代码库 > 【C++基础】重载,覆盖,隐藏
【C++基础】重载,覆盖,隐藏
函数签名的概念
函数签名主要包括1、函数名;2、参数列表(参数的个数、数据类型和顺序);但是注意,C++官方定义中函数签名不包括返回值!!
1、重载
函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数,与函数返回类型无关。
重载要求参数列表必须不同,比如参数的类型不同、参数的个数不同、参数的顺序不同。
2、覆盖
函数覆盖发生在继承层次之中。覆盖需要满足的条件如下:
(1)发生覆盖的函数必须分别在父类和子类中
(2)子类函数与父类函数的函数签名相同,返回值也相同,即函数名相同、参数列表相同、返回值相同
(3)父类函数必须是虚函数
3、隐藏
隐藏是指子类中具有与父类同名的函数(不管参数列表是否相同),除去覆盖的情况。
(1)子类的成员函数与父类的成员函数名必须相同
(2)子类的虚函数无法覆盖父类的虚函数
即子类成员函数与父类成员函数具有相同的函数名,除去覆盖的情况
隐藏要求函数名一定相同,函数签名可以相同也可以不相同。也就是说,继承层次中,父类与子类同名函数要么是覆盖,要么是遮蔽。
【C++基础】重载,覆盖,隐藏
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。