覆盖(override):
覆盖指的是派生类的虚拟函数覆盖了基类的同名且参数相同的函数!
函数覆盖覆盖,要满足两个条件
(1)基类中函数声明有virtual关键字
(2)基类函数和派生类的函数要函数名,参数,返回类型三者皆一致。
重载(overload):
必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构成重载的,这个是重载的重要特征
隐藏(hide):
派生类的成员函数隐藏了基类函数的成员函数.隐藏一词可以
这么理解:在调用一个类的成员函数的时候,编译器会沿着类的继承链逐级的向上查找函数的定义,如果找到了那么就停止查找了,所以如果一个派生类和一个基类
都有同一个同名(暂且不论参数是否相同)的函数,而编译器最终选择了在派生类中的函数,那么我们就说这个派生类的成员函数"隐藏"了基类的成员函数,也就是说它阻止了编译器继续向上查找函数的定义
时间: 2024-10-04 01:26:04