问题标签 [constructor-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 投票
1 回答
446 浏览

java - 如何在 Java 中初始化嵌套的匿名数组 double?

我有一个构造函数,它需要一个嵌套的双精度数组,如下所示:

我想用一个不带参数的默认构造函数重载构造函数,如下所示:

0 投票
2 回答
143 浏览

c# - 如何验证重载构造函数的输入?

这是我的代码

很明显,如果我调用new MyClass(-1)它会抛出消息“leftPoints must be positive”。

是否可以使用重载第一个构造函数: this (points, points)并仍然获得“正确”验证?

0 投票
3 回答
194 浏览

c++ - 将整数参数转发给一个构造函数,将浮点数转发给另一个

我有:

很遗憾,

(这很可怕,不是吗?整数类型肯定有利于构造函数采用更高精度的整数参数。)

如何正确地将整数参数和浮点参数正确转发给各自的构造函数?

编辑:也许我过分简化了这个问题。它最初来自这个询问。我正在包装 Python 原语,例如 Float Long String,重要的是初始化被转发到正确的原语。同时,由于这是一个通用的包装器,我不希望消费者为了避免内部陷阱而担心类型转换。

正如 Mike Seymour 所指出的,SFINAE 提供了一种处理此问题的技术。

非常感谢 FreeNode C++ 频道上的 doug64k 提供以下解决方案:

http://ideone.com/QLUpu2 http://ideone.com/TCigR3 http://ideone.com/oDOSLH

明天当我找到线索时,我将尝试将这些作为答案。

0 投票
2 回答
644 浏览

vb.net - 链接重载的构造函数

我正在尝试创建一个代码重复最少的高效类。

我有这个定义:

具有 firstName 和 lastName 参数的构造函数是进行验证的端点构造函数。以 userGUID 作为参数的构造函数将查询 DB 以获取名称并调用最终构造函数。这样,所有执行都应该针对实际执行所有验证等的构造函数之一。其背后的想法是,如果我添加新的构造函数,我只需要提取必要的数据(名字/姓氏)并调用最终的构造函数进行验证。

但是,有一个编译错误阻止我在线使用这个系统Me.New(dt.Rows(0)("FirstName").ToString(),dt.Rows(0)("LastName").ToString())。显然,这一行必须是构造函数中的第一行。但是如果我将其作为第一行,它将破坏验证过程,因为验证会由于没有名字/姓氏而引发错误。我必须查询数据库才能提取该信息。

我知道我可以在这里分配值并从这个构造函数调用验证,但这会有效地将这个构造函数与最后一个构造函数隔离,从而复制代码并增加维护。仅供参考,在下面的示例中,我只有 2 个构造函数,但实际上我还有更多。如果每个人都会做自己的任务,那么它只会增加维护。

那么,有没有办法通过执行一些代码然后调用重载的构造函数来完成我的任务?

感谢您的任何见解

更新 1:

根据 the_lotus 评论,我包括 dt 定义。这个问题有一个解决方法。基本上我会从最终的构造函数中取出验证和赋值,并将其放入一个函数中。所有的构造函数都会调用这个函数,从而消除了链接构造函数的需要。它看起来不错,但我想了解为什么为了链接构造函数,我必须将构造函数调用放在第一行。

这是新代码:

公共类 Foo Private _firstName As String = "" Private _lastName As String = ""

结束类

一个奇怪的更不用说:在线代码转换器(vb.net 到 C#)在转换链式构造函数调用时没有问题,而不是在第一行。C# 代码返回为this.#ctor(dt.Rows(0)("FirstName").ToString(), dt.Rows(0)("LastName").ToString());但是,如果我尝试转换回 VB.NET,它会失败。

0 投票
1 回答
149 浏览

java - 在 C# 中,如何正确重载此构造函数?

我对以下两个构造函数有疑问,它们都是我试图从 Java 移植过来的Graph 类的一部分:

正如它所写的那样,并且令人愉快的是它并不漂亮,第二个构造函数将使用第一个参数 V 调用第一个构造函数,这是应该的。

我的问题是,如果 V 是输入序列中的第二个整数会发生什么(这意味着我必须调用 ReadLine() 两次),在这种情况下,类似的构造函数链接调用会如何?而且,如果不将某些逻辑导出到另一种方法中,甚至可以进行链接吗?

编辑 主要问题,我想我在讨论中意识到这一点,是关于 C# 中的构造函数与 java 构造函数的灵活性。例如,我可以this(v)在调用两次后在 java 中调用ReadLine(),但是如何在 C# 中实现相同的功能?

0 投票
2 回答
83 浏览

java - 构造函数重载的工作原理

如果我不能修改方法(只能修改和类) ,如何Factory.create调用构造函数?Task.<init>(SubType)Factory.createTaskSubType

0 投票
1 回答
91 浏览

java - 在Java中,当参数为null时将选择哪个构造函数

假设我有这个代码:

现在我想创建一个实例,A但我不知道当唯一的参数是时会选择哪个构造函数null

我应该如何管理并解决这个问题?

更新

我已经对此进行了测试,它不会被编译,null但是当我使用空对象时,它会考虑什么是对象类型:

它将执行public A(String b){}

那安全吗?

0 投票
2 回答
1158 浏览

c++ - C ++如何生成函数重载的所有排列?

可以说我有课程Date和课程YearMonth并且Day.

这使我没有特定的参数布局,Date因为我有很多重载。

我能够自动生成所有排列/重载吗?

只是要清楚:

  • 排列只是参数布局,它们的任何内容都不应该改变,因为我知道这不可能自动化。
  • 所有生成的重载都应该具有相同的代码,因为只有参数的布局会改变而不是逻辑本身。
0 投票
1 回答
923 浏览

c++ - 使用 SFINAE“重载”构造函数

为什么以下重载构造函数的尝试Foo::Foo失败了?另外,我很感激替代方案/解决方法

错误信息:

0 投票
1 回答
67 浏览

c++ - Game// 不能改变重载的构造函数的值

伙计们。我倾斜了。问题是每次转弯(我的攻击,敌人的攻击),我和敌人的统计数据都会被重置。即敌人有20HP,我打5DMG,它检测到变化并且在下一次打印时敌人有15HP,但在下一回合它的HP回到20。(同样的事情发生在英雄角色身上。)PS对不起,糟糕的英语和糟糕的书面代码真的很糟糕。这是整个代码。

*