36得票2回答
为什么在Kotlin类构造函数中要使用val或var?

我正在学习 Kotlin,在下面的第一段代码中有 val 关键字,而在另一段代码中则没有, 如果省略 val 和 var,这里有什么不同?class Person(val firstName: String, val lastName: String) { } class Person(fi...

25得票3回答
无法从初始化字符串推导出成员变量中数组大小的原因是什么?

考虑以下代码:struct Foo { const char str[] = "test"; }; int main() { Foo foo; } 使用g++和clang++编译时出现错误,错误信息为: error: array bound cannot be...

25得票6回答
Python继承类中的__init__方法

我想在不用显式调用新方法的情况下,给一个子类添加一些额外的属性。那么有没有一种方法可以给继承的类一个__init__类型的方法,而不覆盖父类的__init__方法? 我写了下面的代码,仅是为了阐明我的问题(因此属性命名不佳等)。class initialclass(): def __...

24得票2回答
C++11扩展是什么 [-Wc++11-extensions]

我需要帮助理解出现错误的位置: 警告:在类内初始化非静态数据成员是C++11扩展[-Wc++11-extensions] 这是它所在的代码部分:typedef struct Hand { bool straight = false; bool flush = fal...

19得票3回答
C++11:使用“= {}”进行内部初始化与显式构造函数不兼容。

在C++11中,我们可以使用“大括号或等号初始化器”(标准中的措辞)进行类内初始化,如下所示: 在C++11中,我们可以使用“大括号或等号初始化器”(标准中的措辞)进行类内初始化,如下所示:struct Foo { /*explicit*/ Foo(int) {} }; struct ...

16得票5回答
位域:"类内初始化"导致"error:需要左值作为赋值操作的左操作数"错误。

struct bitfield { int i = 0; // ok int j : 8 = 0; // error: lvalue required as left operand of assignment }; C++11中使用“in-class initialization...

15得票1回答
继承构造函数+非默认可构造类型的类内初始化失败。

我在我的项目中遇到了以下错误: error: use of deleted function ‘C::C(int)’ note: ‘C::C(int)’ is implicitly deleted because the default definition would be ill-fo...

13得票2回答
为什么在类内初始化静态成员会违反ODR?

在Stack Overflow上有几个问题与“为什么无法在C++类中初始化静态数据成员”这一主题相关。大多数答案引用标准告诉您可以做什么; 那些试图回答why的答案通常指向Stroustrup网站上的一个链接(现在似乎不可用)[编辑:实际上它可用,请参见下文],在那里他说明允许在类内初始化静态...

13得票1回答
用户声明的默认构造函数 + 类内初始化器 != 用户提供的构造函数?

我会尽力帮忙翻译。以下是翻译的结果: Clang documentation清晰地解释了: 如果一个类或结构体没有用户定义的默认构造函数,C++不允许您像这样默认构造它的const实例([dcl.init],p9) 原因是如果一个const对象没有正确初始化,就无法在以后更改它。以下...

12得票1回答
C++11中是否有“类成员初始化”的功能?

类内初始化特性允许在类的内部初始化普通成员变量。struct A { int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’ }; 在最新的编译器gcc-4.6(...