重载函数是函数的一种特殊状况,重载函数经常使用来实现功能相似而所处理的数据类型不一样的问题。重载函数(over loaded function)是C++支持的一种特殊函数,今天小编就带你们深刻了解VC++的重载函数。编程
VC++的重载函数函数
通常状况下,你们都应该但愿在构造pt这一个对象的同一时间,传递y以及X这两个坐标的值把。那么这样的话,咱们就能够再定义多一个构造函数了。为了你们能够更加深刻的理解,你们能够参考下面的示范例子哟。具体的程序代码,以下图:学习
你们有没有观察到,在这一个应用程序中,有多少个构造函数呢?没错,答案就是两个。并且这两个构造函数的函数名是相同的,仅仅只是参数的个数以及类型不相同而已。那么其实这样子在C语言中是并不容许的,然而在C++中上面的定义是合理合法的,那么这就是咱们今天所要学习的C++中函数的重载(即overload)。当咱们在执行main函数里面的pointpt(5,5)这一条语句的时候,C++编译器就会根据参数的个数以及参数的类型来肯定一下究竟执行哪个构造函数先。那么在这里的话,咱们就要执行一下point(inta,intb)这一个函数的。对象
如今小编再来为你们介绍一下,构成重载函数须要哪些条件吧?具体须要的条件以下:函数的参数类型、参数个数不同。只有知足以上的条件,才能够真正的构成函数的重载。那么如今咱们就来练习一下,尝试着分析下面的两种状况吧,看一看这两种状况是否是能够构成函数的重载?blog
第一种状况:get
①void output(inta);编译器
②void output(inta,intb=5);io
第二种状况:编译
①int output();function
②void output();
对于第一种状况的话,当咱们在应用程序里面调用output(5)的时候,首先应该调用的到底是哪个函数呢?那么调用(2)的函数是否能够呢?答案是:固然能够啦。由于(2)的函数第二个参数是拥有一个默认值的。那么在这里就能够认为是调用的是第二个函数了;固然啦,咱们在这里也是能够调用(1)的函数。可是咱们在这里要注意一点,那就是由于调用是有歧义的,因此这一种状况也是不能够构成函数的重载。在函数重载的时候,咱们注意要注意一点,那就是函数带有默认参数的这一种状况。
那么如今咱们就来讨论一下第二种状况吧。当咱们在应用程序中调用output()函数的时候,你们有没有想过应该是调用的是哪个函数的呢?在这里,咱们要注意咯。那就是只有函数的返回类型不同,这是不能够构成函数的重载的。通过上面的一番讨论,对于VC++的重载函数你都理解了吗?