只能靠参数而不能靠返回值类型的不同来区分重载函数
2005-08-30 20:10
459 查看
void function(void);
int function (void);
上述两个函数,第一个没有返回值,第二个的返回值是int类型。如果这样调用函数:
int x = function ();
则可以判断出function是第二个函数。问题是在c++/c程序中,我们可以忽略函数的返回值。在这种情况下,编译器和程序员都不知道哪个function函数被调用。
所以只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。
int function (void);
上述两个函数,第一个没有返回值,第二个的返回值是int类型。如果这样调用函数:
int x = function ();
则可以判断出function是第二个函数。问题是在c++/c程序中,我们可以忽略函数的返回值。在这种情况下,编译器和程序员都不知道哪个function函数被调用。
所以只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。
相关文章推荐
- C#只能靠参数而不能靠返回值类型的不同来区分方法重载
- C#只能靠参数而不能靠返回值类型的不同来区分方法重载
- 返回多个不同类型参数的值(out)可变参数一维数组( params )把值从方法中带出(ref) 方法递归(方法自己调用自己与循坏类似注意return每次只能跳出一个方法))
- Java - 为什么不能根据返回类型来区分重载?
- 方法重载,为什么不能根据返回类型来区分?
- 为参数类型一样返回类型不同的接口写一个泛型方法
- 宏定义函数指针类型&函数返回左值类值 1。宏定义不分配内存,变量定义分配内存。 2。宏名和参数的括号间不能有空格 3。宏替换只作替换,不做计算,不做表达式求解 //下面是正确的标准的写法 typedef int(FUNC1)(int in); ty
- 返回值类型的不同不能作为区分重载的途径
- 父类和子类的同名成员函数参数格式相同,返回值类型不同
- error C2556: “void main(void)”: 重载函数与“int main(void)”只是在返回类型上不同
- 检查页面参数,根据返回类型不同进行不同的操作
- error LNK2019:无法解析的外部符号.lib是用vc6编的,其中用到了消息响应,vc6的消息响应函数和vc2005的消息响应函数的参数和返回值类型不同造成的链接问题.
- 为什么函数不能根据返回类型来区分重载?
- 为什么不能根据返回类型区分重载?
- 为什么不能根据返回类型区分重载?
- python中几种不同类型的参数的区分及其定义时的顺序
- 抽象类、接口、方法参数类型及返回值类型
- 测试struts.xml中result参数的不同返回不同的json数据
- C函数只能有一个返回值,如果需要返回多个值,怎么办,其实很简单,只要将指针作为函数参数传递就可以了
- 如何获得变量和返回参数的类型(上篇)