问题标签 [default-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++ - 序列化指向没有默认构造函数的类的指针时无法覆盖 save_construct_data
我正在尝试遵循此示例http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/serialization.html#constructors但我不断收到错误。按照示例,我在尝试访问私有变量时遇到错误(很公平):
但是,如果我将 save_construct_data 添加为好友,则会出现歧义错误:
我可以将函数定义移动到朋友声明中,但这很难看。
接下来我应该尝试什么?
谢谢,杰恩
java - java中是否可以使用反射创建没有无参数构造函数的类的“空白”实例?
我有一个没有默认构造函数的类。我需要一种方法来获取此类的“空白”实例。“空白”表示实例化后所有类字段都应具有默认值,如 null、0 等。
我问是因为我需要能够序列化/去序列化大树的对象。而且我无法访问这些对象类的来源,并且类既没有默认构造函数也没有实现可序列化。尝试序列化这种结构可能不是一个好主意,但另一种方法是将其转换为更容易序列化的东西。
c# - 在 C# 中从类外部访问私有构造函数
如果我定义一个具有私有默认构造函数和具有参数的公共构造函数的类,我如何访问私有构造函数?
我可以通过类上的静态方法访问私有构造函数,如下所示:
我认为我可以通过扩展方法访问私有构造函数,因为(根据我的理解)扩展方法已被翻译,因此它们看起来是类上的静态方法,但我不能:
那么,如何访问私有构造函数呢?
谢谢
编辑:
我想这样做的原因是我想为我们的一个业务类创建测试,但不允许此类的使用者能够错误地实例化对象。我正在测试它,所以我知道(我希望!)在什么情况下测试会失败。我现在仍在测试 n00b,所以我的想法可能是也可能不是做事的“错误方式”。
我已经改变了我的测试策略,只做这个类的消费者会做的事情,即调用公共方法,如果公共方法没问题,假设私有方法没问题。我仍然更愿意测试私有方法,但我的老板对可交付成果感到不满:-(
c++ - 继承类的默认构造函数
我已将问题简化为以下示例代码:
这会产生错误:
调用 'pokemon::pokemon()' 没有匹配的函数</p>
我认为正在发生的是,当我尝试编写不存在的 MewTwo 构造函数时,会调用 pokemon 的默认构造函数。我对 C++ 比较陌生,所以我只是在这里猜测。有任何想法吗?
约束:修复不能修改或添加公共成员到类。
c++ - 如何使用 C++ 中的默认构造函数定义和声明变量?
根据我对声明和定义的理解,在全球范围内:
是否可以声明一个变量并将其定义为在全局范围内使用默认构造函数?如果我使用的是结构而不是类怎么办?
编辑:
好的,MyClass instance;
调用默认构造函数也是如此。谁能解释这与这个例子是如何一致的:
java - Java 默认构造函数
究竟什么是默认构造函数——你能告诉我以下哪一个是默认构造函数,以及它与任何其他构造函数的区别是什么?
java - 如何使用 JMockit 模拟 Date 类的默认构造函数?
我想模拟它的默认构造函数,java.util.date
所以它不会构造一个Date
代表它创建时间的对象,但总是相同的Date
对象(在我的示例中,2010 年 12 月 31 日以下)。我尝试使用JMockit
and执行此JUnit
操作,但是在下面执行我的测试时,输出始终为Thu Jan 01 01:00:00 CET 1970
. 那么我的模拟有什么问题Date()
呢?
c++ - C++ 默认构造函数
如果我们说default constructor
是那个没有参数的构造函数,我们是否也可以说编译器创建的构造函数也是一个default constructor
?
谢谢。
c++ - 为什么 C++ 对象有默认析构函数?
例如,当我不声明构造函数时,编译器将为我提供一个没有参数和定义(空体)的默认构造函数,因此不会采取任何行动。
那么,例如,如果我完成了一个对象,默认析构函数不会重新分配(空闲)对象使用的内存吗?如果没有,我们为什么要得到它?
而且,也许同样的问题也适用于默认构造函数。如果它什么都不做,为什么默认为我们创建它?
c# - 使用默认构造函数初始化数组
我想创建一个上述类的数组,并希望通过调用默认构造函数来初始化数组中的每个元素,以便每个元素可以有不同的abc
. 所以我这样做了:
但这并没有做我认为应该做的事情。似乎这样默认构造函数没有被调用。创建数组时如何调用默认构造函数?
我也想知道上面的语句是做什么的?