initialization-list相关内容
在 C++ 中,您可以使用初始化列表在构造函数开始运行之前初始化类的字段.例如: Foo::Foo(string s, double d, int n) : name(s), weight(d), age(n) {//空的;已经处理了!} 我很好奇为什么 Java 没有类似的功能.根据Core Java:第 1 卷: C++ 使用这种特殊的语法来调用字段构造函数.在 Java 中,不需要
..
我有一个关于在派生类的构造函数中初始化继承成员的问题.示例代码: A 类{上市:诠释m_int;};B类:公共A{上市:B():m_int(0){}}; 这段代码给了我以下输出: 在构造函数'B::B()'中:第 10 行:错误:“B"类没有任何名为“m_int"的字段 (参见 http://codepad.org/tn1weFFP) 我猜为什么会这样?m_int应该是B的成
..
在内部和关于生成的代码,有没有真正的区别: MyClass::MyClass(): _capacity(15), _data(NULL), _len(0){} 和 MyClass::MyClass(){_容量=15;_data=NULL;_len=0} 谢谢... 解决方案 假设这些值是原始类型,那么不,没有区别.初始化列表仅在您将对象作为成员时才会产生影响,因为初始化列表允许您将
..
假设我有以下课程: class MyInteger {私人的:国际n_;上市:MyInteger(int n) : n_(n) {};//更多东西}; 假设这个类没有默认的普通构造函数MyInteger().由于某种原因,我必须始终提供一个 int 来初始化它.然后假设在我的代码中的某个地方我需要一个 vector.如何初始化此 vector 中的每个 MyInteger 组件? 我有两
..
冒号操作符(“:")在这个构造函数中有什么作用?是否等价于MyClass(m_classID = -1, m_userdata = 0);? class MyClass {上市:MyClass() : m_classID(-1), m_userdata(0) {}int m_classID;无效 *m_userdata;}; 解决方案 这是一个初始化列表,是构造函数实现的一部分. 构造
..
是否可以使用子类的构造函数的初始化列表来初始化在父类中声明为受保护的数据成员?我无法让它工作.我可以解决它,但如果我不必这样做就好了. 一些示例代码: class 父级{受保护:std::string 东西;};子类:公共父类{私人的:Child() : something("Hello, World!"){}}; 当我尝试这个时,编译器告诉我:“类‘Child’没有任何名为‘somet
..
内部和关于生成的代码,是否真的有区别: MyClass::MyClass(): _capacity(15), _data(NULL), _len(0){} 和 MyClass::MyClass(){_容量=15;_数据=空;_len=0} 谢谢... 解决方案 假设这些值是原始类型,那么不,没有区别.初始化列表仅在您将对象作为成员时才起作用,因为初始化列表让您将对象初始化为其最终值
..
我正在尝试使用反射来初始化类(列表)中的所有属性: 公共类EntitiesContainer{公共IEnumerable
地址{get;放;}公共IEnumerable人们{放;}公共IEnumerable合同{放;}公共EntitiesContainer(){var propertyInfo = this.GetType().GetPropertie
..
考虑菱形继承图(即虚拟基类).我们从上一个知道 的主体是被执行的. 那是为什么?我本以为应该是编译错误.(当然,当声明了最派生的类并创建了菱形时,就将其检测出来.) 我正在寻找两件事: 此标准在哪里指定? 这种显式但尚未被忽略的代码会在语言的其他地方发生吗? 我正在谈论的代码示例遵循其实际和预期的输出,如下所示: B 0arg-ctorMf 0arg-ctorMt 0
..
变量 international_standard_book_number 有什么问题?每当 isbn_field_i 更改时,如何使它更改? #include#includeISBN类{私人的:unsigned int isbn_field_1 = 0;unsigned int isbn_field_2 = 0;unsigned int isbn_fi
..
在下面的示例中,有人可以解释用双花括号和单花括号初始化之间的行为差异吗? 代码#1: vector v = {“ a”,“ b”}; 字符串c(v [0] + v [1]); cout
..
我正在尝试学习如何初始化列表。 我下面有一个简单的类,试图初始化变量列表。第一个 Month(int m):month(m)有效。我正在尝试使用多个变量在该行下执行类似的操作。是否可以这种格式?我会不得不摆脱那种班轮吗? class Month { public: Month(int m):month(m){} //此方法有效 Month(字符第一,字符第二,字符第三):第
..
我有一个看起来像这样的python类: class过程: def __init __(self,PID ,PPID,cmd,FD,可访问的用户): 后跟: self.PID = PID self.PPID = PPID self.cmd = cmd ... 有没有办法自动初始化这些实例变量,例如C ++的初始化列表? 解决方
..
可以从一个函数获得的元组中的成员初始化程序列表中初始化多个成员吗? 通过元组返回多个值成为更受欢迎,我希望对此有解决方案。除了语言限制外,我看不到其他原因。 这是我所拥有的mcve : auto new_foo(std :: size_t size)-> std :: tuple { 自动缓冲
..
我有一个带有数组成员的类,我想将其初始化为全零。 class X { private: int m_array [10]; }; 对于局部变量,有一种直接初始化为零的简单方法(请参见此处): int myArray [10] = {}; 此外,类成员 m_array 显然需要进行初始化,因为默认初始化int只会留下随机垃圾,如此处所述
..
问题: 我遇到了一个我没想到的怪异问题。我有一个叫做Answers 的类,并且标题内是这样的: class Answer { char * aText; bool b_correct; public: Answer():aText(0){;} //默认构造函数 } 主要(测试)驱动程序代码如下: int main(void) { 静
..
我已将问题减少到以下示例代码: class Charizard {// truck 培训师&myTrainer; public: Charizard(trainer& tMyTrainer); }; 类培训师{ Charizard myPokemon; public: trainer(); }; Charizard :: Charizard(trainer
..
假设我有下面的类: class MyInteger { private: int n_; public: MyInteger(int n):n_(n){}; // MORE STUFF };假设这个类没有默认的琐碎的构造函数 MyInteger(); 。我必须总是提供 int 来初始化它由于某种原因。然后假设我的代码中的某处需要一个向量
..
示例: $ b。我将在新的Stroustrup书中阅读第17章,我对初始化一个初始化列表的类型感到困惑。 $ b in .hpp: class A { public: A():_plantName(std :: string s),_growTimeMinutes(int 1); virtual〜A(); private: std :: string _plan
..
我有一个类似这样的python类: 类进程: def __init __ ,PPID,cmd,FDs,reachable,user): 后跟: self.PID = PID self.PPID = PPID self.cmd = cmd ... 有没有办法自动初始化这些实例变量,如C ++的初始化列表? 编辑:扩展解决方案
..