函数重载是指两个函数具有相同的函数名,但是函数参数的个数或者类型不同。函数重载多发生在顶层函数之间或者同一个类中,函数重载不需要构成继承关系。
在本例中,我们列出了几种函数重载的情形
- 首先是函数的构造函数重载,类中声明了四个构造函数,这四个函数构成重载的关系,前面三个函数之间只是函数参数数目不同,第四个构造函数为拷贝构造函数,该函数与默认构造函数和两个带参构造函数的参数类型不同。
- 类中的成员函数同样可以进行重载,如本例中 base 类的三个 fun() 函数。
- 前两种情况是类内部的函数重载,在类外部顶层函数也同样能够成函数重载关系。如本例中的 g() 函数,这三个函数都是顶层函数,由于函数名相同,但是函数参数不同,构成函数重载关系。
- 函数重载是编译期绑定,它并不是多态。