什么是函数重载
函数重载是C++的重要特性,他允许我们在参数列表不同的前提下定义同名函数。在函数调用时将编译器将根据函数名与调用时的参数类型决定调用的具体函数。
/*实现一个add()函数能够同时对整数和字符串做加法。*/
using namespace std;
//版本一:整数加法
int add(int l, int r) {
return l+r;
}
//版本二:字符串拼接
const string& add(const string& l, const string& r) {
string ret(l);
ret.append(r);
return ret;
}
函数的overload、overwrite和override
无论是overwrite还是override都是在面向对象的继承过程中出现的现象。关于他们的关系和区别很多资料可以查找,这是一篇不错的参考博文。此处不做赘述。
需要特别强调一点!如果派生类override或者overwrite了一个基类的函数,那么基类中该函数的所有重载版本在派生类中均不可见。即使我们的目的只是在派生类中重新实现基类成员函数的一个重载版本,我们也必须重新定义所有的重载函数(当然其实现可以是直接调用基类对应的成员函数)。