◆→"重载"一词是否有两个以上的意思?
在c++教科书中,重载大概被解释为:C++允许在相同作用域中以相同的名字定义不同的函数,只要它们的参数(数量或类型)不同。
另一个重载是指操作符重载,在类内部对内建的操作符进行重定义:
With C++, you can redefine the function of most built-in operators. These operators can be redefined, or “overloaded,” globally or on a class-by-class basis. Overloaded operators are implemented as functions and can be class-member or global functions.
那么上面就有两层意思了:
1.在“相同”或“同一”或“same”的作用域内同一名称不同函数的现象称为重载,比如一个类内部有两个构造函数。
2.在一个大的作用域内包含的另一个小的作用域内,对大作用域的某个函数、运算符进行重定义的现象。
还有一个经常被人称为“重载”的意思就是:比如“重载基类的虚函数”中的“重载”。这里的重载其实是实现的意思;如果该虚函数贯穿的不只一个派生层次,其实也可以理解为“重定义”,即将父类中该函数的实现覆盖掉,重新写一个。那么这里的重载其实是描述“多态”的一个术语。
于是“重载”一词至少应当有三个意思。是吗?如果有面试官问:“什么是重载?”该作何回答?
如果我理解的概念有误,急盼指出,多谢!