黑马程序员技术交流社区
标题:
请讲解一下为何引入了重载,以其它的作用域?
[打印本页]
作者:
彭博文
时间:
2012-3-7 15:41
标题:
请讲解一下为何引入了重载,以其它的作用域?
请讲解一下为何引入了重载,以其它的作用域?
作者:
方杰
时间:
2012-3-7 16:48
重载的含义就不解释。
先说函数重载,
比如有个函数 like() ,来表示喜欢什么。
现在给他定义2个版本, 1.like(string a), 2.like(string a,string b)
如果这样调用:like(apple) 就是第1个版本。 如果是like(apple,orange) 就是第二个版本,
这是最简单的例子,如果不使用重载,只能定义2个函数 like1(),like2(),重载的类型不一样,就调用的函数也不同,
like(string a) 和 like(int a)也不同。
运算符的重载,下面的是C++的,C#还没学到。
运算符的重载分成员运算符和非成员运算符
比如成员运算符,
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
class ren
{
public:
int nianl;
void operator +(int a)
{
nianl=nianl+a;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
ren xiaowang;
xiaowang.nianl=22;
xiaowang+2;
cout<<xiaowang.nianl;
system("pause");
return 0;
}
复制代码
这样就方便了很多。
作者:
彭博文
时间:
2012-3-7 17:09
{:soso_e100:}谢谢了,
作者:
贾宁
时间:
2012-3-7 20:46
重载的意义在于扩展父类的功能,函数的名字不能重复的话,编程是多么痛苦。
构成重载的条件:参数类型不同或者参数个数不同,与函数的返回值无关
作者:
朱学田
时间:
2012-3-7 20:54
就像Console.WriteLine(),既可以输出string,又可以输出int、bool、char等,本身就是方法的重载,这是.net里常见的。
方法重载是让类以统一的方式处理不同类型数据的一种手段。是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
调用方法时通过传递给它们的不同个数和类型的参数会自动匹配具体使用哪个方法。
方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。
作者:
朱小磊
时间:
2012-3-8 22:45
函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
作者:
。_Smileヾ淡莣
时间:
2012-5-30 14:44
其实重载就是定义在一个类中方法名相同,参数类型或参数个数不同就行了的;而且还是有序的;与返回值无关;
函数重载的出现就是为了提高扩张性,提高了阅读性
作者:
G_Xiaotao
时间:
2012-6-1 16:37
重载就是为了扩展功能 如果我们要写很多函数 用不同的名字 那不是很烦啊!!呵呵 然后他是写在一个类里边的哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2