行业知识
C++学习第四天(类与对象下)
2026-10-30 06:52:17
来源:互联网转载
1、构造函数的其他知识
构造函数体赋值
在创建对象���,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值
()构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,而不能称做初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值
初始化列表
概念:以一个冒号开始,接着是以一个逗号分隔的数据成员列表,每个成员变量后面跟着一个放在括号中的初始值或表达式
()class Date{public:Date(int year, int month, int day):_year(year),_month(month),_day(day){}private:int _year;int _month;int _day;}; 【Attention】
1、每个成员变量在初始化列表中只能出现一次
2、类中包含以下成员,必须放在初始化列表位置进行初始化:引用成员变量、const成员变量、自定义类型成员(且该类没有默认构造函数时)
class A{public:A(int a):_a(a){}private:int _a;};class B{public:B(int a, int ref):_aobj(a),_ref(ref),_n(10){}private:A _aobj; //没有默认构造函数int& _ref; //引用const int _n;//const}; 3、尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表进行初始化
4、成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关,例如下面的例题:
class A{public:A(int a):_a1(a),_a2(_a1){}void Print(){cout