1. 什么是C++构造函数初始化列表 C++构造函数初始化列表是一种在构造函数中初始化类成员变量的语法。它允许在构造函数体执行之前对成员变量进行初始化。 2. 基本语法 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始值或表达式。 cpp class ClassName { ...
如本例所示,定义构造函数时并没有在函数体中对成员变量一一赋值,其函数体为空(当然也可以有其他语句),而是在函数首部与函数体之间添加了一个冒号:,后面紧跟m_name(name), m_age(age), m_score(score)语句,这个语句的意思相当于函数体内部的m_name = name; m_age = age; m_score = score;语句,也是赋...
在初始化列表中初始化const数据成员的原因是因为没有为const数据成员单独分配内存,因此将其折叠在符号表中,因此我们需要在初始化列表中对其进行初始化。 同样,它是一个参数化的构造函数,我们不需要调用赋值运算符,这意味着我们避免了一个额外的操作。 #include<iostream>usingnamespacestd;classTest{constintt;public:...
首先要了解的是初始化成员变量的两种方式: classA{public:intm_a;intm_b; A(inta,intb); }//采用初始化列表A:A(inta,intb):m_a(a),m_b(b){ }//采用构造函数内赋值A:A(inta,intb){ m_a=a; m_b=b; } 可以看到成员变量初始化的两种方式:采用初始化列表/采用构造函数内赋值的方式是比较明显...
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: class CExample public int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=0; b=8.8; } }; 上面的例子中两个构造函数...
但是不能将其作为类对象成员进行初始化,构造函数体中的语句只能将其作为 "赋初值" , 而不能称作是 "初始化" 。 因为初始化只能初始化一次, 而构造函数体内可以多次赋值。 所以我们现在来学习一种 "初始化" 的方式 初始化列表 —— 成员变量定义的地方。
Time::Time(inttmphour,inttmpmin,inttmpsec)//Hour(tmphour), Minue(tmpmin), Second(tmpsec), MilliSecond(0) //构造函数初始化列表:Hour(tmphour), Minue(Hour)//不要用成员变量去进行初始化,构造函数中先有值还是Minue先有值取决于time.h头文件中定义的顺序{// Hour = tmphour; // 成员函数中,可...
隐式成员初始化列表:在类定义中不使用初始化列表进行成员变量的初始化,而是在构造函数中进行初始化。 3. 优势 成员初始化列表的优势在于可以确保对象的成员变量在对象创建时被正确地初始化,避免了在构造函数中进行初始化时可能出现的错误。 4. 应用场景 成员初始化列表可以应用于以下场景: 类的构造函数中需要初始化...
您可能已经猜到了,编译器将对字段进行初始化,就像在“成员初始化列表”中初始化字段一样。因此,它们在调用构造函数的主体之前会获取默认值。 换句话说,编译器将扩展代码: int a { initA() }; std::string b { initB() }; SimpleType() { } ...
待分类 > 待分类 > C 构造函数初始化列表与赋值 打印 转格式 80阅读文档大小:508.36K4页poeiwte上传于2015-06-09格式:PDF