问题标签 [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++ - 从 POD 结构继承的类中默认构造函数的奇怪行为
这个问题与这个有关。
正如我在上一个问题中提到的,我决定从 Win 结构 BITMAP 继承我的类以提供一些扩展功能。
我注意到编译程序行为的兴趣细节。首先,我为我的类定义了默认构造函数,如下所示:
在想法编译器必须生成调用基本类型的默认构造函数的代码,即使它没有在初始化列表中手动调用。但是在调试时我注意到 BITMAP 的数据成员没有初始化!我为 BITMAP 添加了手动初始化,它起作用了——所有数据成员都用零初始化:
为什么会这样?编译器不是有义务调用默认构造函数还是仅应用于类?(我认为不可能如此 - 唯一的区别在于成员和继承的默认访问限定符)
php - 为什么 PHP 没有默认构造函数?
为什么我不能使用这样的代码?
例如。Java 类有默认的,没有 args 构造函数。即使没有明确定义,也可以调用它。
当我们从父类中删除没有 args 构造函数时,PHP 行为可能会导致麻烦,例如。当我们认为不再需要它时。
有谁知道为什么 PHP 创建者会这样做?
c++ - 迭代器默认构造函数和POD成员初始化
来自 boost::iterator_facade 文档中的示例 [1]:
后跟一个脚注:
从技术上讲,C++ 标准对默认构造的迭代器几乎没有任何要求,所以如果我们真的关心效率,我们可以编写默认构造函数来让 m_node 未初始化。
我的问题(两部分):(
a)C++ 标准对默认构造的迭代器有什么要求?
(b) 为什么在实例化 a 时省略m_node(0)
避免初始化?那么无论如何都不会被默认初始化(因此为零初始化)? m_node
node_iterator
m_node
[1] http://www.boost.org/doc/libs/1_47_0/libs/iterator/doc/iterator_facade.html#constructors-and-data-members (注:虽然这个问题源于一个提升的例子,但我相信它适用于 STL 迭代器,因此我没有使用“boost”标签。)
c++ - 未初始化的常量
这与当前的 MSVC 编译器编译得非常好:
但是,它无法使用当前的 g++ 编译器进行编译:
如果我自己提供一个默认构造函数,它可以工作:
这是 MSVC 过于宽松的另一种情况,还是 g++ 在这里过于严格?
c++ - 如何防止默认初始化具有类类型的 const 变量
我有一个自定义类,我想表现得像一个内置类型。
但是我注意到您可以在不提供初始值的情况下初始化该类的 const 变量。我的班级目前有一个空的默认构造函数。
这是 int 和我的类 foo 的比较:
如您所见,我需要防止
从编译。
来自 C++ 大师的任何想法?
c# - 复制构造函数转到基础构造函数并覆盖复制的值
构造函数难题,我有这两个构造函数。一个是用于制作类的副本,另一个是标准构造函数。我需要调用第一个,以便我可以使用其中的规则。我不应该重复代码,所以我正在寻找一种方法来避免覆盖两个维度。
我希望能够在不覆盖这两个变量的情况下调用默认构造函数。任何帮助,将不胜感激。
我想我可以检查它们是否为空,但这似乎不是最好的方法。
谢谢
objective-c - 在 Objective C 中分配和初始化自身的构造函数声明
可能重复:
创建新实例的类方法
[[class alloc] init]
你将如何在 Objective-c 中声明一个构造函数,这将允许你在声明期间跳过这一步;不要说例如Fraction* somefrac=[[Fraction alloc] init];
,只要说Fraction* somefrac
,构造函数会做剩下的事情。
c++ - 为什么编译器调用默认构造函数?
为什么我会收到以下错误?(为什么编译器试图调用默认构造函数?)
java - Spring @Autowired 构造函数给出没有找到默认构造函数
Spring 3.0 的一些奇怪行为在这里。
和
这些 bean 都没有在 applicationContext.xml 上声明
所以,行 outroJob.printMe(); 工作正常...打印“正在运行...”
但是当我尝试获取“testeAutowired”bean时,它说:
无法实例化 bean 类 [com.service.schedule.TesteAutowired]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: com.service.schedule.TesteAutowired。
问题是:为什么,如果 Spring 找到“outroJob”bean,它不会在 TesteAutowired 构造函数上自动装配它?
它必须做什么似乎很明显......
c++ - 谷歌测试 - 构造函数声明错误
我正在尝试从具有构造函数声明(带参数)的普通类创建一个测试夹具类,如下所示:
你好.h
其中 uint32_t 是:typedef unsigned int
而 uint8_t 是:typedef unsigned char
我的测试夹具类:
你好TestFixture.h
尝试实现上述代码后,它给了我错误:
我试图将 hello.h 文件中构造的构造函数复制到我的hellotestfixture.h文件中。这样做有什么办法吗?我已经尝试以多种方式实现它,但到目前为止还没有成功。关于如何实现这一点的任何建议?