48得票3回答
在C++中,“=default”构造函数和编译器生成的构造函数有什么区别?

代码示例:class Dog { private: int x; public: Dog()=default; }; 与此代码相比:class Dog { private: int x; }; 使用 "=default" 声明的构造函数和编译器自动生成的构造函数有什么区别?

44得票3回答
在一个空类中,C++会编写和调用什么函数?

在《Effective C++》这本书中,我看到了以下段落: 因此,如果你写出如下代码class Empty{}; 这本质上与您写下以下内容相同: class Empty { public: Empty() { ... } Empty(const Empty& ...

44得票3回答
用户自定义的C++11枚举类默认构造函数

有没有办法指定一个enum class的默认构造函数? 我正在使用一个enum class来指定库中特定数据类型允许使用的一组值:在这种情况下,它是树莓派的GPIO引脚ID号码。它看起来像这样: enum class PinID :int { N4 = 4,N17 = 17,/*...et...

43得票6回答
我是否真的需要在Java中定义默认构造函数?

如果我没有定义构造函数,那么一切都很正常,但是当我定义了一个带参数的构造函数而没有定义默认构造函数并且在创建对象时没有传递任何值,就会出现错误。我原以为构造函数是预定义的。 如果我已经定义了一个带参数的构造函数,为什么还需要定义一个默认构造函数呢?难道默认构造函数不是预定义的吗?

42得票2回答
“explicit”关键字对默认构造函数有影响吗?

在不带参数的构造函数中使用explicit关键字有什么原因吗?它会产生任何影响吗?我想知道这个问题,因为我刚刚遇到了这行代码。explicit char_separator() 在文档 boost::char_separator 的页面接近末尾处有提到,但是那里没有进一步的解释。

41得票5回答
在Java中,是否可以使用反射创建一个没有无参构造函数的类的“空白”实例?

我有一个没有默认构造函数的类。我需要一种方法来获得这个类的“空白”实例,即实例化后所有类字段都应具有默认值,如null、0等。 我之所以问这个问题,是因为我需要能够序列化/反序列化大量对象树。我无法访问这些对象类的源代码,而且这些类既没有默认构造函数,也没有实现Serializable接口。...

40得票2回答
设置默认参数值为默认构造函数的更好语法

有时候,我们需要声明一个带有参数的函数,并指定该参数的默认值为类型的默认构造函数的结果: void foo(a::really::long::type::name arg = a::really::long::type::name()); 有没有更好的语法可以避免输入类型名称两次?例如:...

39得票3回答
为什么超类构造函数总是被调用

我有以下两个类public class classA { classA() { System.out.println("A"); } } class classB extends classA { classB() { ...

36得票2回答
为什么在堆上创建对象或栈中的临时对象时,结构体中的POD类型会被隐式构造函数进行零初始化?

标准C++书籍表示:对于类类型成员来说,隐含的生成的默认构造函数会调用默认构造函数。但是,内置数据类型不会被初始化。然而,在这个测试程序中,当在堆上分配对象或使用临时对象时,我得到了意料之外的结果:#include<iostream> struct Container { ...

34得票2回答
隐式构造函数和默认构造函数之间有什么区别?

这个问题很琐碎,但捷克语(我的母语)没有区分隐式和默认,所以我对一些捷克翻译中隐式构造函数和默认构造函数或构造函数调用的区别感到困惑。 struct Test { Test(int n=0) { } }; 你能用这些术语描述以下语句的作用吗? Test t1; Test t2()...