• 关于

    函数重载

    的搜索结果

回答

运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下: 函数类型 operator 运算符名称 (形参表列) { 对运算符的重载处理 } 不是必须的有&是引用,调用;有可能改变其后变量的值;无&,其后的变量仅仅参与运算,不会改变其值 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下: 函数类型 operator 运算符名称 (形参表列) { 对运算符的重载处理 }不是必须的有&是引用,调用;有可能改变其后变量的值;无&,其后的变量仅仅参与运算,不会改变其值

xumaojun 2019-12-02 01:59:33 0 浏览量 回答数 0

回答

运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下: 函数类型 operator 运算符名称 (形参表列) { 对运算符的重载处理 }不是必须的有&是引用,调用;有可能改变其后变量的值;无&,其后的变量仅仅参与运算,不会改变其值

nothingfinal 2019-12-02 01:59:33 0 浏览量 回答数 0

回答

函数重载主要是为了解决两个问题。 1。可变参数类型。 2。可变参数个数。 另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。 那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。 那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。 鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。

珍宝珠 2019-12-02 03:12:47 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

这个就像Java里的方法重载,是处理不固定参数个数,给参数赋默认值的方法。把Java重载需要定义多个函数,简化为只需要一个函数。但是对于多个函数,需要注意,如果某个函数赋默认值,那么函数表里排在他后边的所有函数都要有默认值,否则参数表里的默认值没有意义,也就是说,调用的时候,只能选择 不传某个参数以及参数表其之后的所有参数。

小旋风柴进 2019-12-02 02:40:46 0 浏览量 回答数 0

问题

关于java中重载函数前@Override注解?

蛮大人123 2019-12-01 20:23:58 1876 浏览量 回答数 1

回答

另外关于函数模板的主模板和全特化版本之间的决议问题(函数模板只能全特换,不能偏特化(特化在template 后一个<>, 模板之后一个<>),偏特化可以用重载等效,当然全特化也可以用重载等效)。重载决议的顺序:普通函数 > 主模板(未特化的模板) > 全特换版本。(C++编程剖析问题、方案和设计准则 P43)

nothingfinal 2019-12-02 01:59:45 0 浏览量 回答数 0

回答

另外关于函数模板的主模板和全特化版本之间的决议问题(函数模板只能全特换,不能偏特化(特化在template 后一个<>, 模板之后一个<>),偏特化可以用重载等效,当然全特化也可以用重载等效)。重载决议的顺序:普通函数 > 主模板(未特化的模板) > 全特换版本。(C++编程剖析问题、方案和设计准则 P43)

xumaojun 2019-12-02 01:59:45 0 浏览量 回答数 0

问题

python函数重载机制?

珍宝珠 2019-12-01 21:55:42 36 浏览量 回答数 2

问题

Python不支持函数重载,那这个CASE怎么办?报错

爱吃鱼的程序员 2020-06-08 13:39:46 0 浏览量 回答数 1

回答

1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。 2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。 3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

阳阳羊 2019-12-02 01:03:06 0 浏览量 回答数 0

回答

java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。 覆盖者可能不会限制它所覆盖的方法的访问。 重载(Overloading) (1)方法重载是让类以统一的方法处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数(类型)。重载Override是一个类中多态性的一种表现。 (2)java的方法重载,就是在类中可以创建多个方法,他们具有相同的名字,但具有不同参数和不同的定义。调用方法时通过传递给他们不同的参数个数和参数类型来决定具体使用那个方法,这就是多态性。 (3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不同。无法以返回类型来作为重载函数的区分标准。

小勿悔 2019-12-02 01:03:31 0 浏览量 回答数 0

回答

1.this表示的是指向一个实例吗。如果不是指向一个实例,那么为什么this可以参与instanceof运算或当作引用参数传进方法里,super为什么不能?-- this表示的是指向一个实例。 System.out.println(s instanceof SubT3);//false 这个地方之所以返回false 是因为 s的类型是 SuperT3 所以 “s instanceof SubT3” 是返回false2.如果this表示当前对象,那么我在第4行new的SubT3的实例,在第14行为什么没有打印出peter呢。--首先说this的类型是SubT3 这是确定的,所以this instanceof SuperT3 和 this instanceof SubT3都是true. 第14行打印出Jack是正确的。要从内存结构看,子类是无法覆盖父类的成员变量的,所以对于SubT3 来说里面有两个 name, 一个是Jack 一个是peter。那么究竟是调用哪个name呢?是调用基类的name,因为成员变量是不能重载的,也就是说 调用成员变量的函数在基类中 则使用基类的成员变量 调用成员变量的函数在子类中则使用子类中的成员变量。 如果想要 输出peter,只需要在SubT3 重载func 也就是将func的代码复制在SubT3中 就会输出peter. 记住:成员变量是不会被重载的 只有 函数会被重载。3.如果在第14行时,this只表示SuperT3的引用(我也不知道到底引用什么),那为什么第16行没有打印出与第6行相同的结果呢?--看第2条的回答 this不是superT3 是 subT3 只是因为成员变量是无法重载的 依赖于调用它的函数所在类。另外说明一下,如果基类的成员变量可以被同名的子类中成员变量替换,那会产生灾难的后果。比如基类中有个数组 里面存储了一些 标识 比如 0 1 2 而在子类中 声明了同样一个名字的数组 里面是 3 4 5 那么基类运行到基类的方法的时候 本来处理 0 1 2 现在却处理 3 4 5 会产生不可预知的结果。如果想改变基类的行为 重载他的函数 重新定义新的行为。

蛮大人123 2019-12-02 01:49:27 0 浏览量 回答数 0

问题

C与C++的区别

a123456678 2019-12-01 19:51:01 948 浏览量 回答数 1

回答

PHP的函数调用,是通过查表,找到函数名称所对应的函数上。PHP的函数重载和其他语言不同,它收到的不同个数的参数,实际上都是将其作为一个数组传递给函数。因此你列举的函数调用,没有参数也能执行,因为其参数数组为空,这一情况是合理的。PHP函数调用不检查参数个数的匹配。

落地花开啦 2019-12-02 02:45:04 0 浏览量 回答数 0

问题

利用函数注解实现方法重载

哦哦喔 2020-04-17 16:21:51 4 浏览量 回答数 2

回答

先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下: 方法名相同 方法的参数类型,参数个不一样 方法的返回类型可以不相同 方法的修饰符可以不相同 main 方法也可以被重载 class MyClass { int height; MyClass() { System.out.println("无参数构造函数"); height = 4; } MyClass(int i) { System.out.println("房子高度为 " + i + " 米"); height = i; } void info() { System.out.println("房子高度为 " + height + " 米"); } void info(String s) { System.out.println(s + ": 房子高度为 " + height + " 米"); } } public class MainClass { public static void main(String[] args) { MyClass t = new MyClass(3); t.info(); t.info("重载方法"); //重载构造函数 new MyClass(); } } 以上代码运行输出结果为: 房子高度为 3 米 房子高度为 3 米 重载方法: 房子高度为 3 米 无参数构造函数

珍宝珠 2020-02-12 19:48:22 0 浏览量 回答数 0

回答

me=1如果是初始化,将调用一个构造函数;如果不是,将调用operator=(int),如果me的类定义中没有operator=(int)或者int相关类型重载,将会调用带有一个int参数的构造函数构造一个临时对象,然后调用赋值操作符函数进行赋值me(1)如果是初始化,将会调用一个构造函数,如果不是初始化而且定义了operator()(),将会调用这个操作符函数

a123456678 2019-12-02 01:57:23 0 浏览量 回答数 0

回答

你可以除了构造函数和析构函数外,另外两个可选拷贝构造和赋值,这两个可以实现其中一个,另一个来调用。如果没有拷贝构造函数或析构函数,系统自动实现按位赋值,这样,如果存在指针会导致两个变量指向同一地方,修改其中一个就全部修改,或者删除一个,另一个也变成了空指针或野指针。所以你需要做拷贝构造或赋值,比如你重载了赋值,那么可以在拷贝构造中调用赋值,直接new一个新变量后赋值。个人认为,一般是涉及到根据一个实例去初始化另一个实例的时候,需要自定义一个拷贝构造函数(当然系统这时候一般也会默认一个)。比如类 Class Test;如果有Test a;Test b = a; 拷贝构造函数void function(Test t); 调用这个函数的时候,拷贝构造函数Test function2(); 调用这个函数的时候 return一个Test实例,拷贝构造函数。

a123456678 2019-12-02 01:59:22 0 浏览量 回答数 0

回答

new 是动态分配的, 都是动态绑定的,只是绑定的对象,有虚函数表的时候,虚函数表的函数指针指向的是具体动态创建的子类的函数而已。 编译器多态值得一般是是函数重载,泛型编程等。是代码层面的多态。######写得挺好######不错!######mark######个人感觉:在没用支持多态的话,所有的函数都是在编译器就进行了绑定,此时仅仅是根据指针的类型进行函数的绑定。也就是指针声明为什么类型,就在相应的类中绑定这个函数。但是当出现了多态性之后,因为 这个函数是虚函数,这时的函数绑定就不应该以指针或引用的声明为准,而应该在运行时,通过对象的vptr查找虚函数表,进而再确定应该调用那个函数。######挺好的

kun坤 2020-06-06 13:42:32 0 浏览量 回答数 0

问题

为什么php中在private方法里重新定义与父类同名的私有函数会报警告呢?

落地花开啦 2019-12-01 19:53:35 839 浏览量 回答数 1

问题

编写一个Java应用程序,从键盘读取用户输入两个字符串,重载3个函数分别实现这两个字符串的拼接

珍宝珠 2020-02-12 16:15:10 105 浏览量 回答数 2

回答

1、 list< CA > cc = aa方式和先声明一个list cc; 再做 cc=aa;的操作有什么区别?第一种调用的是拷贝构造函数,第二种调用的是构造函数和赋值运算符。2、都可以,运算符重载说白了就是函数,你参数定义的不同,就是调用方式有区别。

a123456678 2019-12-02 01:58:25 0 浏览量 回答数 0

回答

问题解决了,和oc类似。在用UIPickerViewDelegate的时候有一个pickerView函数不是optional的,必须要写。如果需要使数据关联,还需要重载这个函数,原型是func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)剩下的和oc类似,再用swift语法完成就行了。最后需要调用pickview控件的reloadComponent()函数刷新内容

a123456678 2019-12-02 03:14:42 0 浏览量 回答数 0

问题

C++基础语法【问答合集】

马铭芳 2019-12-01 20:19:12 935 浏览量 回答数 1

回答

楼主。看了你的错误信息,很明显根据提示可以知道,错误,error C2084: function ‘xxx’ already has a body,在VC++早期版本中函数不能重名,6.0版本中支持函数的重载,函数名可以相同但参数不一样

爱吃鱼的程序员 2020-05-28 19:02:56 0 浏览量 回答数 0

回答

楼主。看了你的错误信息,很明显根据提示可以知道,错误,error C2084: function ‘xxx’ already has a body,在VC++早期版本中函数不能重名,6.0版本中支持函数的重载,函数名可以相同但参数不一样

爱吃鱼的程序员 2020-05-28 17:29:40 0 浏览量 回答数 0

问题

c++派生类怎样调用基类的操作符函数

a123456678 2019-12-01 20:11:20 1078 浏览量 回答数 1

问题

vs2010提示不存在用户定义的从Date到const Date的转换

a123456678 2019-12-01 20:06:56 1927 浏览量 回答数 1

回答

CPP编译时编译器会修改函数名(为了实现重载),你看看是找不到那个函数定义,用着无法找到的名字替换汇编的_gettsc试试谢谢了,就是这个问题,函数声明增加extern"C"解决问题了。c++有函数名修改机制谢谢,就是这个问题,声明函数时增加extern"C"....解决问题了不要用c++只能用C++问题解决了

爱吃鱼的程序员 2020-06-09 10:48:45 0 浏览量 回答数 0

回答

构造函数,是一种特殊的方法。 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。 构造函数跟一般的实例方法十分相似;但是与其它方法不同,构造器没有返回类型,不会被继承,且可以有范围修饰符。构造器的函数名称必须和它所属的类的名称相同。 它承担着初始化对象数据成员的任务。 如果在编写一个可实例化的类时没有专门编写构造函数,多数编程语言会自动生成缺省构造器(默认构造函数)。默认构造函数一般会把成员变量的值初始化为默认值,如int -> 0,Integer -> null。

montos 2020-06-01 15:51:53 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站