C++基础学习之函数重载的简单介绍

2020-01-06 20:17:15王振洲

运行结果如下:

calcute triangle area 
calcute circle area 
calcute square area

可以看到,当分别传入Triangle ,Circle,Square类型时,分别调用了对应的函数。

为什么要重载

函数重载在一定程序上可以减轻程序员起名字的负担。最常见的一个例子就是构造函数的重载。


class Test
{
 public:
  Test(void); // 无参构造函数
  Test(int a);//构造函数
  Test(int a,int b);//两个整型参数的构造函数
};

可以看到,类Test的三个构造函数名都为Test。如果没有重载,要实现三个构造函数就可能需要三个不同的构造函数名区分,这也就增加了类的使用者的负担,使用者需要传入不同参数构造对象时,就需要使用不同的构造函数名称。而有函数重载之后,类的使用者可以使用同一个函数名传入不同的参数即可。

当然了,如果单纯地为了减轻起名字的负担而去使用函数重载,而使得函数失去了本来的信息,则是一个不明智的选择。我们可以为那些操作确实极其相似的函数进行重载。

不能重载的情况

以下几种情况下,是不能重载或者说是非法的。

main函数不能重载

这是在C++ 11标准中说明的: