问题标签 [constructor]
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.
c++ - C++ 构造函数的默认参数
拥有一个使用默认参数的类构造函数是一种好习惯,还是应该使用单独的重载构造函数?例如:
任何一个版本似乎都可以工作,例如:
你喜欢或推荐哪种风格,为什么?
c# - 我应该使用 default(Foo)、Foo.Empty 还是 null?
因此,C# 现在允许您用于default(Foo)
获取已识别的“尚未填充”/空的类实例——我不确定它是否完全相同new Foo()
。许多库类还实现了一个Foo.Empty
属性,该属性返回一个类似的实例。当然,任何引用类型都可以指向null
. 所以真的,有什么区别?什么时候是对还是错?什么更一致,或者表现更好?在检查一个对象在概念上是否“尚未准备好迎接黄金时段”时,我应该使用哪些测试?不是每个人都有Foo.IsNullOrEmpty()
。
design-patterns - 静态工厂方法与实例(普通)构造函数?
在两者都可用的语言中,您希望看到实例构造函数还是返回实例的静态方法?
例如,如果您String
从 a创建一个char[]
:
String.FromCharacters(chars);
new String(chars);
c++ - 构造函数中冒号后面的成员变量列表有什么用?
我正在阅读这个 C++ 开源代码,我来到了一个构造函数,但我不明白(基本上是因为我不懂 C++ :P)
我非常了解 C 和 Java。
据我所知,第一行只声明了构造函数的名称,“::”对我来说听起来像是“属于”的。{} 之间的代码是它自己的构造函数体。
我“认为”参数和第一个“{”之后的内容就像方法默认参数或其他东西,但我在网上找不到合理的解释。我在示例中发现的大多数 C++ 构造函数与 Java 中的构造函数几乎相同。
我的假设是对的吗?"::" 就像是属于,params 和 body 之后的列表就像 "default args" 什么的?
更新: 感谢您的回答。这些可以称为方法吗?(我猜不是)在构造函数体内调用它们有什么区别
c++ - C++浅拷贝问题
假设我有一个带有 int 指针成员变量“i”的结构“s”。我在 s 的默认构造函数中为 i 在堆上分配内存。稍后在代码的其他部分中,我将 s 的实例按值传递给某个函数。我在这里做浅拷贝吗?假设我没有为 s 实现任何复制构造函数或赋值运算符或任何东西......只是默认构造函数。
php - __construct() vs SameAsClassName() 用于 PHP 中的构造函数
__construct()
在 PHP 中使用而不是类的名称作为构造函数有什么好处吗?
示例 ( __construct
):
示例(命名):
从 PHP 5 开始就可以使用该__construct
方法(第一个示例)。
从 PHP 版本 4 到版本 7,可以使用与类同名的方法作为构造函数(第二个示例)。
c# - 在 C# 中内联或在静态构造函数中初始化静态变量的区别
我想知道初始化静态成员内联有什么区别:
或在静态构造函数中初始化它,如下所示:
c# - 如何继承构造函数?
想象一个有许多构造函数和一个虚方法的基类
现在我想创建一个覆盖虚拟方法的后代类:
还有另一个做更多事情的后代:
我真的必须将所有构造函数从 Foo 复制到 Bar 和 Bah 吗?然后,如果我在 Foo 中更改构造函数签名,我是否必须在 Bar 和 Bah 中更新它?
有没有办法继承构造函数?有没有办法鼓励代码重用?
c++ - 可以在模板类中使用构造函数中的初始化列表吗?
我发现大多数关于 C++ 模板的书籍都没有说明是否可以在模板类的构造函数中使用初始化列表。
例如,我有这样的代码:
我可以将构造函数替换为