重载的目的是什么

函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。   如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_int、print_string。这里还只是两个的情况,如果是很多个的话,就需要为实现同一个功能的函数取很多个名字,如加入打印long型、char*、各种类型的数组等等。、      类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦!不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。操作符重载,本质上就是函数重载,它大大丰富了已有操作符的含义,方便使用,如+可用于连接字符串等!
时间: 2024-12-24 03:22:58

重载的目的是什么的相关文章

方法重载和方法重写

一.C#语法规则: 方法重载:同一个类中,方法名相同,参数(类型或数量)不同,方法体不同; 方法重写:不同的类中,方法名相同,参数(类型和数量)相同,方法体不同: 关键字: vatiral(标注需要被重写的方法) .override(标注用于重写的方法) 二.实践 1.方法重写 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.T

解释清楚c++的重载操作符【用自己的话,解释清楚】

C++中对于内置的变量及标准库中常见的类定义类常见的操作符含义,对于自定义的类也可以通过关键字operate 重载操作符的含义. C++中支持重载的目的 诚然操作符的重载可以通过使用函数实现同样的功能,但C++中引入重载,我想是为了增加代码的见解性和可读性. 具体的使用 在要重载的参数名儿前加operate关键字,其他与普通的函数声明类似. 参考例子 class person{ public: int age;};bool operator==(person const &p1 ,person 

[C++]关于重载运算符的一些建议

运算符 1. 谨慎定义类型转换函数 有两种函数允许编译器进行这些的转换:单参数构造函数(single-argument constructors)和隐式类型转换运算符.单参数构造函数是指只用一个参数即可以调用的构 造函数.该函数可以是只定义了一个参数,也可以是虽定义了多个参数但第一个参数以后的 所有参数都有缺省值. 第一个例子: class Name { public: Name(const string& s); ... }; class Rational { public: Rational

深入理解运算符的重载

*运算符重载: 1.运算符重载就是赋予已有的运算符多重含义,即多种功能. 2.运算符重载的目的:通过运算符的重载即重新定义使得其能够用于特定类的对象执行特定的功能. 3.对于运算符的重载首先要关心的就是那些运算符能够重载,那些不能重载: 能够重载的运算符: (1).算术运算符:+,-,*,/,%,++,--: (2)位操作运算符:&,|,^,~,<<,>>: (3)逻辑运算符:!,&&,||: (4)比较运算符:>,<,>=,<=,=

什么是方法 , 方法的重载 ,递归算法

方法: 为什么要声明方法 DRY Don't Repeat Yourself(不要写重复的代码) 原则 把能重复使用的逻辑抽取出来 方法的作用 简化代码 提高代码的可读性 提高代码的可维护性 重点:方法声明中需要注意: 1.访问权限修饰符 其他修饰符 可省略 2.一个完整的方法包含声明部分和方法体部分 3.方法不调用 不执行 4.方法与方法之间是平级关系 不能嵌套定义 5.如果方法有明确的返回值类型 一定要有return语句 将返回值带回 方法的调用格式 赋值调用 输出调用 单独调用 当方法声明

Java 方法重载和多态

先来看看什么是方法重载? 方法重载的要求是:方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数).至于方法的其他部分,如方法返回值类型和修饰符,与方法重载没有任何关系.最好加上@Overload注解. 为什么要用方法重载? 重载的目的是方便程序员调用方法.比如,System.out.println()这个函数是用来输出的,当输出的是整数时是用这个方法,当输出一个字符串时还是用这个方法.根据传入参数的不同,自动找到匹配的方法. 以下程序不使用方法重载,试着分析看看有什么缺点. pub

python中函数重载和重写

python 中的重载??在python中,具有重载的思想却没有重载的概念.所以有的人说python这么语言并不支持函数重载,有的人说python具有重载功能.实际上python编程中具有重载的目的缺无重载的行为,或者说是python并不需要重载!??python是一门动态语言,不需要声明变量类型,函数中可以接受任何类型的参数也就无法根据参数类型来支持重载,python没有必要去考虑参数的类型问题,这些都可以在函数内部判断处理,并无必要去在写一个函数.python 有多种传参方式,默认参数/可变

运算符重载1

所谓重载,就是重新赋予新的含义.函数重载是对一个已有的函数赋予新的含义,使之实现新功能. 其实运算符也可以重载,实际上,我们常常在不知不觉之中使用了运算符重载. 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算. 也就是说,运算符重载是通过定义函数实现的.运算符重载实质上是函数的重载. 重载运算符的函数一般格式如下: 函数类型 operator 运算符名称(形参表列) { 对运算符的重载处理 } 例如我们可以重载运算符 + , 如下:

运算符重载和深浅拷贝

对于某些运算符号(+,-,*,/....),我们不满足与它原有的操作方式,而是要在对特有对象(如负数的加减)进行使用,但是编译器会不允许这样做,因为会与操作符原本的类型不匹配而导致操作失败.因此我们需要对运算符进行重载,即赋予它新的意义,从而满足我们的使用需求. 如complex_a和complex_b是两个复数对象求两个复数的和, 希望能直接写:complexa + comple_b ? 运算符重载的目的是:扩展C++中提供的运算符的适用范围,使之能作用于对象. ? 同一个运算符,对不同类型的