问题标签 [overloading]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将超类作为参数传递给期望子类的方法
我有一个看起来像的对象树
我有两种方法:
在另一堂课上,我想做以下事情:
其中 myBall 是 Ball 类型。并让它根据子类型调用正确的方法。显然我不能这样做......这些论点不适用。
有谁知道我怎样才能实现我想要的?或者如果有一个好的解决方法
谢谢
编辑:我正在尝试构建的应用程序是板球记分卡类型的东西。因此,根据保龄球的类型,其他各种元素应该改变。
我的初衷是能够从某种形式的 UI 中指定球的类型和得分,然后从 BallFactory 创建一个适当的类型球,然后例如当我向球队得分发送一个无球时,它会将值添加到球队得分,但也将值添加到无球计数器。但是,当我将同一个球交给击球手分析来处理它时,击球手总得分应该只有 1 分。
我希望这不是太糟糕的解释我的初衷。
c++ - 哪个编译器对于以下重载/专业化行为是正确的?
考虑以下代码:
预期的输出是多少?“T”还是整数?
一个编译器(来自 Apple Xcode 3.1.2 的 gcc 4.0.1)输出“int”,另外两个编译器(gcc 4.1.2 和 4.1.3)输出“T”。
如果我在 foo(T *, int) 版本之前移动 foo(int *, int) 声明/定义,则所有输出“int”。在这种情况下,重载/专业化的顺序是否由当前标准定义?
c# - 如何通过泛型类型的特定实例重载 C# 方法
来自 C++ 背景,我遇到了基于泛型类型的特定实例的重载问题。以下内容不起作用,因为只Foo<T>
生成了一次该类的代码实例,所以在里面Method
,类型this
是简单的,Foo<T>
不是我希望的。在 C++ 中,我习惯于将模板实例化为唯一类型。Foo<A>
Foo<B>
有没有办法让这样的东西在 C# 中工作?我宁愿不必将 Foo 中的代码复制为我想要使用的每种类型的单独类。
编辑:希望这更清楚一点。
c++ - 在 C++ 中使用 const 覆盖两个参数的运算符
我正在尝试使用两个 const 参数创建一个重写的运算符函数,但我不知道该怎么做。这是一个简单的例子:
我在这里要做的是将两个参数传递给加法函数,它们都是 const 并返回结果而不更改类中的任何内容:
这可能吗?我将如何去做?
谢谢,
担
c# - 重载方法调用重载方法
我有一个正在编写的方法,它在其中调用另一个重载方法。我只想写一个外部方法,因为外部方法的参数被传递给内部方法。有没有办法做到这一点?
我尝试使用泛型,但我对此知之甚少,因此它不起作用:
我知道我可以这样做:
但我宁愿以正确的方式做到这一点,而不是复制/粘贴代码。实现这一目标的最佳方法是什么?
c++ - C++ 中的覆盖和重载
是的,我确实理解它们之间的区别。我想知道的是:为什么要覆盖一个方法?这样做有什么好处?在重载的情况下:唯一的优点是您不必为函数考虑不同的名称?
c# - 你能在 ASP.NET MVC 中重载控制器方法吗?
我很想知道您是否可以在 ASP.NET MVC 中重载控制器方法。每当我尝试时,我都会收到以下错误。这两种方法接受不同的参数。这是不能做的事情吗?
当前对控制器类型“MyController”的操作“MyMethod”的请求在以下操作方法之间不明确:
programming-languages - 返回类型的函数重载?
为什么更多主流静态类型语言不支持返回类型的函数/方法重载?我想不出有什么办法。它似乎与支持参数类型的重载一样有用或合理。怎么人气这么低?
java - Java 方法分派如何与泛型和抽象类一起工作?
我今天遇到了一种情况,Java 没有调用我期望的方法——这是最小的测试用例:(很抱歉,这似乎是做作的——“现实世界”的场景要复杂得多,而且更有意义从“你为什么要这样做?”的角度来看。)
我对为什么会发生这种情况特别感兴趣,我不在乎重新设计的建议。我感觉这是在 Java Puzzlers 中,但我手边没有我的副本。
请参阅下面 Test<T>.getValue() 中的特定问题:
这段代码的输出是:
javascript - Javascript 中的函数重载 - 最佳实践
在 Javascript 中伪造函数重载的最佳方法是什么?
我知道不可能像在其他语言中那样重载 Javascript 中的函数。如果我需要一个具有两种用途的功能,foo(x)
并且foo(x,y,z)
这是最好/首选的方式:
- 首先使用不同的名称
- 使用可选参数,如
y = y || 'default'
- 使用参数数量
- 检查参数的类型
- 或者怎么做?