前些天学习了C++中重载,隐藏和覆盖的区别,又从网上搜集了一些关于这方面的资料。
简单整理如下。
重载
前提条件:
1、成员函数在同一个作用域呢。
2、成员函数的函数名必须相同。
3、成员函数的参数在顺序,个数,类型上至少有一个不相同。或者是常函数,或者参数中const修饰的指针或引用,都可以做为重载的条件。
覆盖
前提条件:
1、成员函数在不同的作用域内。
2、必须要有Virtual 修饰。
3、函数的名称,参数及其他必须完全相同。
隐藏
前提条件:
1、派生类中含有和基类相同的函数名,但是参数不相同。
2、派生类中中成员函数和基类的成员函数名称,参数等全部完全相同,但是基类中的成员函数没有Virtual 关键字修饰。
一些简单的笔记。