关于函数重载的问题

#include<iostream.h>
void add(int a,char b)
{
cout<<"add(int a,int b)"<<endl;
}
void add(int a, int b)
{
cout<<"add(int a, int b)"<<endl;
}
void add(int a,double b){
cout<<"add(int a,double b)"<<endl;
}
void main()
{
int a=3;float b=3.0;
add(b,a);
}
为什么这里调用的时add(int a,int b)的

应该是实参的位置有点问题吧,add(b,a);b是foat,a是int,楼主的本意是否是想传add(a,b);
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-23
这是一个最最基本的题目。首先,我要说的是,函数是具有黑盒性质的。
什么是黑盒性质呢?就是说函数如果是传递参数的方式是传值的话(可以近似理解为,参数不是引用,也不是指针的情况),这时候传入函数的值会被拷贝一份,赋给为了函数而特别开辟的变量。而在函数中的变量的改变,就与函数外的参数没有关系了。

拿你那个程序来说明一下。首先一个函数要想在main函数中使用,就要声明或者定义这个函数。void func(int);是这个函数的声明。后面的func函数定义虽然在main后面,但是由于在main之前声明了,就意味着告诉编译器,有这么个函数。所以不会报错了。在main函数中执行了func(x),你想想,如果是func(5)的话,那变量怎么改变呢?5可不是一个变量,但是绝对是一个合法的函数调用。所以这种传值方式是不会改变变量的。

关于指针和引用的具体问题,我觉得你还是看看书吧,毕竟c语言的灵魂是指针,不是可以一句两句说清楚的。

什么叫函数重载?
函数重载是指在同一作用域内,允许存在多个同名函数,只要它们的参数列表不同。这是编程中处理多种不同输入情况的一种有效方法。下面是对函数重载的 1. 定义与目的:函数重载允许我们在同一类中使用相同的函数名但具有不同参数列表的多个函数。这样做的目的是为了增加代码的灵活性和可读性,使我们能够根据...

重载一个函数的条件是什么
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。条件如下两个重载函数必须在下列一个或两个方面...

重载详细解读
函数重载是C++中一种重要的特性,允许使用相同的函数名称处理不同类型的输入。以下是重载的一些关键要点:1. 函数名相同是重载的基础,返回值可以各异,但特征标志(如参数类型、数量和const性)必须不同。编译器首先依据函数名识别候选函数,然后根据特征标志选择最适合的函数。2. 在匹配函数时,编译器不...

什么叫函数重载
函数重载是指在同一作用域内,可以定义多个功能相似但参数列表不同的函数,它们共享同一个函数名。这是面向对象编程中的一个重要特性,特别是在处理具有不同输入类型和数量参数的相似操作时非常有用。以下是详细的解释:1.函数重载的基本概念:在编程中,函数重载允许我们创建多个具有相同名称但参数不同的...

函数的重载是什么意思?
函数的重载是指在同一作用域内,通过参数的不同类型、不同个数或不同顺序,定义多个同名函数的情况。一般来说,重载函数可以使代码更简洁、直观,同时增强函数的可扩展、可复用性。函数的重载可以应用于不同的语言,如C++、Java、Python等。比如,在C++中,当程序调用一个函数时,编译器会在所有同名函数...

函数重载定义
定义两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。在函数重载中,通过检查参数类型和数量来区分不同的函数实现,使得函数名可以表示多种不同的操作。这使得代码更加清晰、易读,同时也...

关于函数重载,下列叙述中错误的是( )。
【答案】:C 所谓函数重载是指同一函数名可以对应多个函数实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。

什么是函数的重载?
在C++编程中,函数重载是一种特殊的设计机制,它允许在相同的命名空间内声明多个相似功能的函数,但要求这些函数在参数的数量、类型或顺序上有所区别。这种设计的目的是为了通过使用同一个运算符来执行不同类型的数据操作,从而提高编程的灵活性和代码的可读性。重载函数的关键特性在于它们的差异性,至少在...

什么是函数重载
函数重载是指在同一作用域内,使用相同的函数名但具有不同参数类型、顺序或数量的函数定义。详细解释:函数重载是一种多态的表现形式,允许我们在相同的作用域内定义多个同名函数,但它们的参数列表(包括参数类型、参数数量或参数顺序)必须不同。通过函数重载,我们可以实现更加灵活和多样化的函数调用方式,...

函数重载的条件
函数参数类型或者个数的顺序不同 以上条件中,只要有一个条件不满足,就不能实现函数重载。相同的函数名可以有不同的函数实现,根据不同的参数类型或个数来区分。 例如:int add(int x, int y); \/\/ 第一个函数 double add(double x, double y); \/\/ 第二个函数 int add(int x, int y, ...

相似回答
大家正在搜