C++中采用函数重载的目的是什么

如题所述

简单地说,重载就是为不同的函数(行为、操作)起相同的名字。
重载的目的是为了更好地表达行为共享,这种行为共享就像将相似的操作划分在一起。使用重载可以使程序员在只知道操作的一般含义,而不知道操作具体细节的情况下能正确地对某个对象使用一个操作。使用重载的直接益处是减少了程序员记忆操作名字的负担。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
主要是避免长函数名。
比如,有两个函数,要计算整型数组和双精度数组的最大值,可以分别声明为
int max_of_int_array(int a[], int n);

double max_of_double_array(double a[], int n);
但在C++的重载机制下,只需要用
int max(int a[], int n);
double max(double a[], int n);
类似的,如果有两个函数,分别计算两个整数和三个整数的最大值,可以分别声明为
int max_2(int a, int b);
int max_3(int a, int b, int c);
但在C++的重载机制下,只需要用
int max(int a, int b);
int max(int a, int b, int c);本回答被网友采纳
第2个回答  2011-01-04
为什么需要函数重载?
试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_int、print_string。这里还只是两个的情况,如果是很多个的话,就需要为实现同一个功能的函数取很多个名字,如加入打印long型、char*、各种类型的数组等等。这样做很不友好!
类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦!
操作符重载,本质上就是函数重载,它大大丰富了已有操作符的含义,方便使用,如+可用于连接字符串等!
我也是在这篇文章中看到了,所以推荐你也看看那个文章吧!

参考资料:http://www.newwhy.com/2010/0906/12489.html

第3个回答  推荐于2016-06-05
多态性是面向对象程序设计的重要特征之一。它与前面讲过的封装性和继承性构成了面向对象程序设计的三大特征。这三大特征是相互关联的。封装性是基础,继承性是关键,多态性是补充,而多态又必须存在于继承的环境之中。

所谓多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行为。这里所说的消息主要是指对类的成员函数的调用,而不同的行为是指不同的实现。利用多态性,用户只需发送一般形式的消息,而将所有的实现留给接收消息的对象。对象根据所接收到的消息而做出相应的动作(即操作)。

函数重载和运算符重载是简单一类多态性,所谓函数重载简单地说就是赋给同一个函数名多个含义。具体地讲,C++中允许在相同的作用域内以相同的名字定义几个不同实现的函数,可以是成员函数,也可以是非成员函数。但是,定义这种重载函数时要求函数的参数或者至少有一个类型不同,或者个数不同。而对于返回值的类型没有要求,可以相同,也可以不同。那种参数个数和类型都相同,仅仅返回值不同的重载函数是非法的。因为编译程序在选择相同名字的重载函数时仅考虑函数表,这就是说要靠函数的参数表中,参数个数或参数类型的差异进行选择。

由此可以看出,重载函数的意义在于它可以用相同的名字访问一组相互关联的函数,由编译程序来进行选择,因而这将有助于解决程序复杂性问题。如:在定义类时,构造函数重载给初始化带来了多种方式,为用户提供更大的灵活性。

参考资料:http://blog.csdn.net/lance_123/archive/2005/10/20/510440.aspx

本回答被网友采纳
相似回答