问题标签 [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.

0 投票
8 回答
2885 浏览

c# - 重载是在 C# 中使用默认函数参数的唯一方法吗?

处理默认函数参数的唯一方法是通过函数重载,这是真的吗?

例如,在 PHP 中,我可以这样做:

在 C# 中处理它的最佳方法是这样吗?

从这里举起的例子

编辑

将 C# 示例变为实际的 C#(感谢 Blair Conrad)

0 投票
9 回答
12425 浏览

c++ - C++ 重载决议

鉴于以下示例,为什么我必须明确使用该语句b->A::DoSomething()而不仅仅是b->DoSomething()

编译器的重载决议不应该弄清楚我在说哪种方法吗?

我正在使用 Microsoft VS 2005。(注意:在这种情况下使用虚拟没有帮助。)

0 投票
3 回答
1652 浏览

c++ - (函数)模板的 C++ 非类型参数是否有序?

我在当前项目中托管SpiderMonkey,并希望模板函数生成一些简单的属性获取/设置方法,例如:

用过的:

但是,如果我添加其他成员类型,这可以正常工作:

然后 Visual C++ 9 尝试将 JSObject* 包装器用于 int32 成员!

令人惊讶的是,解析 JSObject* 会导致解析错误!(意外的'(')。这可能是一个 VC++ 错误(任何人都可以测试“模板 void foo() {}”在 GCC 中编译吗?)。与“typedef JSObject* PObject; ..., PObject TClassImpl:: mem>"、void、struct Undefined* 和 double。由于函数使用完全实例化:“&ReadProp”,因此不应有正常的函数重载语义发挥作用,此时它是一个已定义的函数,优先于模板功能。这里的模板排序似乎失败了。

Vec2 只是:

JSPropertySpec 在 OP 中的 JSAPI 链接中进行了描述,取自标题:

0 投票
21 回答
291699 浏览

java - 多态性 vs 覆盖 vs 重载

在 Java 方面,当有人问:

什么是多态性?

重载覆盖是一个可以接受的答案吗?

我认为还有更多的东西。

如果您有一个抽象基类定义了一个没有实现的方法,并且您在子类中定义了该方法,那仍然是覆盖吗?

我认为重载肯定不是正确的答案。

0 投票
4 回答
1371 浏览

.net - 相同的属性,不同的类型

假设您有一个具有 Uri 属性的类。有没有办法让该属性同时接受字符串值和 Uri?你会如何建造它?

我希望能够执行以下操作之一,但都不支持(使用 VB,因为它允许您在 Set 声明中为第二个指定类型):

鉴于这些可能不会很快得到支持,您还会如何处理呢?我正在寻找比提供附加.SetLink(string value)方法更好的东西,而且我仍在使用 .Net2.0(尽管如果以后的版本对此有很好的功能,我想听听)。

我可以想到您可能希望提供这种重载的其他场景:例如,具有 SqlConnection 成员的类允许您设置新连接或新连接字符串。

0 投票
12 回答
270465 浏览

c++ - C++ 构造函数的默认参数

拥有一个使用默认参数的类构造函数是一种好习惯,还是应该使用单独的重载构造函数?例如:

任何一个版本似乎都可以工作,例如:

你喜欢或推荐哪种风格,为什么?

0 投票
3 回答
399 浏览

c++ - 函数重载失败:为什么这些运算符会发生冲突?

我有一个很大的代码库,其中包括两个主要的命名空间:引擎和应用程序。

引擎将vector3 类定义为另一个vector3 类的typedef,相等运算符位于引擎命名空间中,而不是vector3 类中。我向应用程序添加了一个类,该类在应用程序命名空间中也有相等运算符。

当我尝试编译时,不相关但附近的 vector3 比较失败,因为它找不到合适的相等运算符。我怀疑我引起了冲突,所以将我的相等运算符移到我添加的类中,编译成功。

但是在考虑之后,我看不出编译失败的原因。没有从 vector3s 到我的类的隐式转换,反之亦然,并且依赖于参数的查找应该从引擎命名空间中拉入相等运算符并匹配它。

我尝试在示例 C++ 项目中重现此错误,但拒绝中断。大型代码库中一定有一些东西导致了这个问题,但我不确定从哪里开始寻找。类似于流氓“使用引擎”的反面?有人有什么想法吗?

0 投票
3 回答
33245 浏览

.net - 如何使用反射在 .NET 中调用重载方法

有没有办法在.NET(2.0)中使用反射来调用重载方法。我有一个应用程序可以动态实例化从公共基类派生的类。出于兼容性目的,该基类包含 2 个同名方法,一个带参数,一个不带参数。我需要通过 Invoke 方法调用无参数方法。现在,我得到的只是一个错误,告诉我我正在尝试调用一个模棱两可的方法。

是的,我可以将对象转换为我的基类的实例并调用我需要的方法。最终这发生,但现在,内部复杂性不允许它发生。

任何帮助都会很棒!谢谢。

0 投票
16 回答
25381 浏览

c++ - 根据返回值重载一个C++函数

我们都知道可以根据参数重载一个函数:

你能根据返回值重载一个函数吗?定义一个函数,根据返回值的使用方式返回不同的东西:

您可以假设第一个参数在 0-9 之间,无需验证输入或进行任何错误处理。

0 投票
16 回答
5089 浏览

c# - 方法重载。你能过度使用它吗?

定义几个使用不同过滤器返回相同形状数据的方法时,有什么更好的做法?显式方法名称或重载方法?

例如。如果我有一些产品并且我正在从数据库中提取

显式方式:

重载方式:

我意识到您可能会遇到类似签名的问题,但如果您传递的是对象而不是基本类型(字符串、int、char、DateTime 等),这将不是问题。所以...重载方法以减少您拥有的方法数量并为了清楚起见是一个好主意,还是每个以不同方式过滤数据的方法都应该具有不同的方法名称