default-constructor相关内容

如何防止使用默认构造函数?

我是在Java编译器的陪伴下长大的,Java编译器在类中没有显式构造函数时自动生成默认构造函数,而当我有任何显式构造函数时不生成。 据我所知,构造函数定义了必需的依赖关系,而属性定义了可选的依赖关系(最有可能使用缺省值...由构造函数设置)。如果您遵循上述规则(这是我在职业生涯中亲身体验到的),那么在面向对象的代码中,能够在()未定义的情况下调用()是完全错误的。 ..
发布时间:2022-08-30 23:29:56 其他开发

为什么C++对象有一个默认的析构函数?

例如,当我没有声明构造函数时,编译器将为我提供一个没有参数和定义(空体)的默认构造函数,因此不会采取任何操作。 那么,例如,如果我完成了一个对象,默认的析构函数不会重新分配(释放)该对象使用的内存吗?如果它没有,为什么我们会得到它? 而且,可能同样的问题也适用于默认构造函数。如果它什么也不做,为什么默认情况下会为我们创建它? 推荐答案 说编译器生成的默认构造函数不执行任何操作是 ..
发布时间:2022-05-19 11:08:59 C/C++开发

Java 默认构造函数

究竟什么是默认构造函数——你能告诉我以下哪一个是默认构造函数以及它与任何其他构造函数的区别吗? 公共模块(){这个.name = "";this.credits = 0;this.hours = 0;}公共模块(字符串名称,int credits,int hours){this.name = 名称;this.credits = 学分;this.hours = 小时;} 解决方案 两者都不是. ..
发布时间:2022-01-30 09:19:56 Java开发

未初始化的常量

使用当前的 MSVC 编译器可以完美编译: struct Foo{} 常量 foo; 但是,使用当前的 g++ 编译器编译失败: 错误:未初始化的 const 'foo' [-fpermissive]注意:“const struct Foo"没有用户提供的默认构造函数 如果我自己提供一个默认构造函数,它会起作用: struct Foo{富(){}} 常量 foo; 这是 MSVC 过于 ..
发布时间:2022-01-23 20:47:49 C/C++开发

如何优雅地返回默认初始化的对象?

我有一个像下面这样的课程: 类 VeryVeryVeryLongTypeName{布尔 is_ok;非常非常非常长类型名称():is_ok(假){}};非常非常非常长类型名称 f(){非常非常长类型名称 v;...//做某事如果(条件_1 为真){返回 v;}别的{返回非常非常非常长类型名称();}...//做某事如果(条件_2 为真){返回 v;}别的{返回非常非常非常长类型名称();}} ..
发布时间:2022-01-19 15:13:53 C/C++开发

为什么在堆中创建对象或堆栈中的临时对象时,隐式构造函数将结构中的 POD 初始化为零?

标准和 C++ 书说,类类型成员的默认构造函数由隐式生成的默认构造函数调用,但内置类型未初始化.但是,在这个测试程序中,在堆中分配对象或使用临时对象时,我得到了意想不到的结果: #include结构容器{诠释n;};主函数(){容器 c;std::cout ..

std::array 的默认初始化?

使用 C++11 std::array,我是否可以保证语法 std::array;x; 将默认初始化数组的所有元素? 编辑:如果没有,是否有适用于所有数组(包括零大小数组)的语法来将所有元素初始化为其默认值? 编辑:在 cppreference 上,默认构造函数描述说: (constructor) (隐式声明) (public member function)默认构造或复制构造数组的 ..
发布时间:2022-01-18 23:16:22 其他开发

在 C++ 中,只有默认参数的构造函数是默认构造函数吗?

在以下代码中: struct Foo{Foo(int x=0);}; 构造函数算作默认构造函数吗? 解决方案 C++98 §12.1/5 (强调我的): 类 X 的默认构造函数是无需参数即可调用的 X 构造函数.如果类 X 没有用户声明的构造函数,则隐式声明默认构造函数. 所以是的,它确实算作默认构造函数.另见. ..
发布时间:2021-12-30 15:44:06 C/C++开发

为什么我们在 Java 中需要一个默认的无参数构造函数?

为什么在许多 Java 相关的 API 中我们需要一个默认的无参数构造函数?作为一般规则,所有 java bean 类或实体类(JPA 等)或 JAX-WS 实现类都需要一个显式的无参数构造函数. 如果默认情况下 Java 提供无参数构造函数,那么为什么这些标准中的大多数都需要显式构造函数? 解决方案 Java 仅提供默认的无参数构造函数如果没有定义其他构造函数.因此,如果您有其他构 ..
发布时间:2021-12-30 15:43:59 Java开发

C++ 对象实例化与赋值

这有什么区别: TestClass t; 还有这个: TestClass t = TestClass(); 我预计第二个可能会调用构造函数两次,然后是 operator=,但它只调用了一次构造函数,就像第一个一样. 解决方案 TestClass t; 调用默认构造函数. TestClass t = TestClass(); 是一个复制初始化.它将调用 TestClass() ..
发布时间:2021-12-30 15:32:07 C/C++开发

从没有默认构造函数的类继承的类

现在我有一个从 B 类继承的 A 类,并且 B 没有默认构造函数.我正在尝试为 A 创建一个构造函数,它与 B 的构造函数 具有完全相同的参数 struct B {国际n;B(int i) : n(i) {}};结构 A : B {A(int i) {//...}}; 但我明白了: 错误:没有匹配的函数调用‘B::B()’注意:候选人是:B::B(int) 我该如何解决这个错误? ..
发布时间:2021-12-30 15:24:02 C/C++开发

“没有合适的默认构造函数可用"--为什么甚至调用默认构造函数?

我已经查看了其他一些关于此的问题,但我不明白为什么在我的情况下甚至应该调用默认构造函数.我可以只提供一个默认构造函数,但我想了解它为什么这样做以及它会影响什么. error C2512: 'CubeGeometry' : 没有合适的默认构造函数可用 我有一个名为 ProxyPiece 的类,其成员变量为 CubeGeometry.构造函数应该接收 CubeGeometry 并将其分配给成员变量 ..
发布时间:2021-12-30 15:20:26 C/C++开发

是否可以在java中使用反射创建没有无参数构造函数的类的“空白"实例?

我有一个没有默认构造函数的类.我需要一种方法来获取此类的“空白"实例.'blank' 表示实例化后所有类字段都应具有默认值如空、0 等. 我问是因为我需要能够序列化/反序列化对象的大树.而且我无法访问此对象类的源,并且类既没有默认构造函数也没有实现可序列化.尝试序列化此类结构可能不是一个好主意,但替代方案是将其转换为更易于序列化的内容. 解决方案 使用标准反射,没有,但有一个库可以为 ..

为什么 std::vector 的元素不需要默认构造函数?

我如何编写自己的数组类而不需要它的元素的默认构造函数?现在,当我使用 new [] 分配空间时,我需要一个默认构造函数. std::vector 没有. 他们是如何施展这种魔法的? 解决方案 std::vector 不需要默认构造函数,因为它从不使用它.每次它需要构造一个元素时,它都会使用复制构造函数来完成,因为每次它都有要复制的东西:现有的向量元素或您自己提供的用于通过方法参 ..
发布时间:2021-12-21 13:37:15 C/C++开发

创建片段:构造函数与 newInstance()

我最近厌倦了在创建我的 Fragments 时不断需要知道 String 键来将参数传递到 Bundles.所以我决定为我的 Fragments 制作构造函数,它会接受我想要设置的参数,并将这些变量放入带有正确 StringBundles> 键,因此无需其他 Fragments 和 Activity 需要知道这些键. public ImageRotatorFragment() {极好的();Lo ..

带有 JPA 的 Kotlin:默认构造函数地狱

根据 JPA 的要求,@Entity 类应该有一个默认(非参数)构造函数来在从数据库中检索对象时实例化对象. 在 Kotlin 中,在主构造函数中声明属性非常方便,如下例所示: class Person(val name: String, val age: Int) {/* ... */} 但是当非 arg 构造函数被声明为辅助构造函数时,它需要传递主构造函数的值,因此它们需要一些有效值 ..
发布时间:2021-12-10 17:07:45 其他开发

类不存在默认构造函数

#include "Includes.h"枚举 BlowfishAlgorithm{欧洲央行,加拿大广播公司,CFB64,OFB64,};河豚类{民众:结构 bf_key_st{无符号长 P[18];无符号长 S[1024];};河豚(河豚算法算法);无效处置();void SetKey(无符号字符数据[]);无符号字符加密(无符号字符缓冲区[]);无符号字符解密(无符号字符缓冲区[]);字符 E ..
发布时间:2021-12-09 20:55:15 C/C++开发