草庐IT

Initialization

全部标签

java - 在Java中将多个变量初始化为相同的值

我正在寻找一种简洁有效的方法来声明多个相同类型和相同值的变量。现在我有:Stringone="",two="",three=""etc...但我正在寻找类似的东西:Stringone,two,three=""这是可以在java中做的事情吗?牢记效率。 最佳答案 Stringone,two,three;one=two=three="";这应该适用于不可变对象(immutable对象)。例如,对于可变对象没有任何意义:PersonfirstPerson,secondPerson,thirdPerson;firstPerson=secon

c++ - 声明时新的 C++11 成员初始化功能是否使初始化列表过时?

使用C++11,我们现在可以在头声明中初始化类成员:classaClass{private:intmInt{100};public:aClass();~aClass();};所以我有点困惑。传统上,构造函数中的初始化列表已用于成员初始化:aClass::aClass():mInt(100){...}声明时新的C++11成员初始化功能是否使初始化列表过时?如果不是,那么一个比另一个有什么优势?什么情况会使声明时的初始化有利,或者初始化列表有利?什么时候应该使用一个而不是另一个? 最佳答案 不,它们并没有像本文那样过时GettoKnow

c++ - 声明时新的 C++11 成员初始化功能是否使初始化列表过时?

使用C++11,我们现在可以在头声明中初始化类成员:classaClass{private:intmInt{100};public:aClass();~aClass();};所以我有点困惑。传统上,构造函数中的初始化列表已用于成员初始化:aClass::aClass():mInt(100){...}声明时新的C++11成员初始化功能是否使初始化列表过时?如果不是,那么一个比另一个有什么优势?什么情况会使声明时的初始化有利,或者初始化列表有利?什么时候应该使用一个而不是另一个? 最佳答案 不,它们并没有像本文那样过时GettoKnow

c++ - 为什么 const 成员必须在构造函数初始化器中而不是在其主体中初始化?

为什么声明为const的类成员必须在构造函数初始化器列表中初始化,而不是在构造函数体中?两者有什么区别? 最佳答案 在C++中,当执行进入构造函数的主体时,对象被认为已完全初始化。你说:"iwantedtoknowwhyconstmustbeintializedinconstructorinitializerlistratherthaninit'sbody?."您缺少的是initialisation发生在初始化列表中,而assignment发生在构造函数的主体中。逻辑步骤:1)一个const对象只能被初始化。2)一个对象的所有成员都

c++ - 为什么 const 成员必须在构造函数初始化器中而不是在其主体中初始化?

为什么声明为const的类成员必须在构造函数初始化器列表中初始化,而不是在构造函数体中?两者有什么区别? 最佳答案 在C++中,当执行进入构造函数的主体时,对象被认为已完全初始化。你说:"iwantedtoknowwhyconstmustbeintializedinconstructorinitializerlistratherthaninit'sbody?."您缺少的是initialisation发生在初始化列表中,而assignment发生在构造函数的主体中。逻辑步骤:1)一个const对象只能被初始化。2)一个对象的所有成员都

c++ - 这个自初始化有效吗?

我有这个问题,我之前考虑过,但认为这不是微不足道的回答intx=x+1;intmain(){returnx;}我的问题是程序的行为是已定义还是未定义,如果它完全有效。如果已定义,x的值是否在main中已知? 最佳答案 我很确定它已定义,并且x应该具有值1。§3.6.2/1说:“具有静态存储持续时间(3.7.1)的对象应在任何其他初始化之前进行零初始化(8.5)发生。”在那之后,我认为这一切都很简单。 关于c++-这个自初始化有效吗?,我们在StackOverflow上找到一个类似的问题:

c++ - 这个自初始化有效吗?

我有这个问题,我之前考虑过,但认为这不是微不足道的回答intx=x+1;intmain(){returnx;}我的问题是程序的行为是已定义还是未定义,如果它完全有效。如果已定义,x的值是否在main中已知? 最佳答案 我很确定它已定义,并且x应该具有值1。§3.6.2/1说:“具有静态存储持续时间(3.7.1)的对象应在任何其他初始化之前进行零初始化(8.5)发生。”在那之后,我认为这一切都很简单。 关于c++-这个自初始化有效吗?,我们在StackOverflow上找到一个类似的问题:

c++ - 现在我们有了 std::array C 风格的数组还有什么用途?

std::array远远优于C数组。即使我想与遗留代码互操作,我也可以使用std::array::data()。我有什么理由想要一个老式的数组吗? 最佳答案 除非我遗漏了一些东西(我没有太密切地关注标准的最新变化),C样式数组的大部分用途仍然存在。std::array确实允许静态初始化,但它仍然不会为您计算初​​始化程序。由于在std::array之前唯一真正使用C样式数组的是静态初始化表大致如下:MyStructconsttable[]={{something1,otherthing1},//...};使用通常的begin和end

c++ - 现在我们有了 std::array C 风格的数组还有什么用途?

std::array远远优于C数组。即使我想与遗留代码互操作,我也可以使用std::array::data()。我有什么理由想要一个老式的数组吗? 最佳答案 除非我遗漏了一些东西(我没有太密切地关注标准的最新变化),C样式数组的大部分用途仍然存在。std::array确实允许静态初始化,但它仍然不会为您计算初​​始化程序。由于在std::array之前唯一真正使用C样式数组的是静态初始化表大致如下:MyStructconsttable[]={{something1,otherthing1},//...};使用通常的begin和end

c++ - 在这种特定情况下,使用成员初始值设定项列表和在构造函数中赋值有区别吗?

在内部和关于生成的代码,有没有真正的区别:MyClass::MyClass():_capacity(15),_data(NULL),_len(0){}和MyClass::MyClass(){_capacity=15;_data=NULL;_len=0}谢谢... 最佳答案 需要使用初始化列表来初始化常量成员、引用和基类当你需要初始化常量成员、引用和传递参数给基类构造函数时,如注释中提到的,你需要使用初始化列表。structaa{inti;constintci;//constantmemberaa():i(0){}//willfail