相关疑难解决方法(0)

函数重载按返回类型?

为什么更多主流的静态类型语言不支持返回类型的函数/方法重载?我想不出那样做.通过参数类型支持过载似乎没有那么有用或合理.怎么这么不受欢迎呢?

programming-languages overloading language-design function-calls

248
推荐指数
5
解决办法
10万
查看次数

如何根据结果类型重载函数?

只是一个问题,我有:

myclass = class
public
  function Funct1: String;
  function Funct2: Integer;
end;
Run Code Online (Sandbox Code Playgroud)

这让我感到错误,所以我尝试过:

myclass = class
public
  function Funct1: String; overload;
  function Funct2: Integer; overload;
end;
Run Code Online (Sandbox Code Playgroud)

但同样的问题; delphi告诉我有相同的参数.现在,我问,是否可以在模式下执行具有相同名称但具有不同输出的更多功能,如示例中所示?非常感谢您的帮助.

UPDATE

对不起,我做错了,不是funct1和funct2,但两个都是funct1,所以:

myclass = class
public
  function Funct1: String; overload;
  function Funct1: Integer; overload;
end;
Run Code Online (Sandbox Code Playgroud)

这样做,编译器会给我这个错误:

[DCC错误] Project1.dpr(15):E2252具有相同参数的方法'funct1'已存在[DCC错误] Project1.dpr(22):E2037'funct1'的声明与之前的声明不同

当然,我知道因为给出错误并需要更改两个函数之一的名称(因为我之前感到困惑)但我想知道是否有一些技巧或其他解决方案,因为这样的情况没有错误.再次感谢.

delphi overloading delphi-xe2

2
推荐指数
4
解决办法
6376
查看次数