当前位置 : 主页 > 编程语言 > c语言 >

C++ ---->再谈构造函数(升级版)_01

来源:互联网 收集:自由互联 发布时间:2023-09-06
-----构造函数体赋值 ----初始化 --前奏 各位好友, 下面函数体 对类 对象 赋初始值 行为, 是不可以称为 初始化成员对象 ! 因 初始化行为有且只能有一次, 而函数体类 --内部赋值 可

----->构造函数体赋值

---->初始化 -->前奏

各位好友, 下面函数体 对类 对象 赋初始值 行为, 是不可以称为 初始化成员对象 !

因 初始化行为有且只能有一次, 而函数体类 -->内部赋值 可以多次进行 !

C++ ---->再谈构造函数(升级版)_01_再谈构造函数


---->初始化 -->开启

#include <iostream>
using std::cout;
using std::endl;

// 初探 函数体赋值 --->初始化列表
class Date
{
public:
  Date(int year = 2018, int month = 05, int day = 07)
    :_year(year)
    ,_month(month)
    ,_day(day)		// 要注意格式书写
  {}
  void Print()
  {
  	cout << _year << " - " << _month << " - " << _day << endl << endl;
  }
private:
  int _year;
  int _month;
  int _day;
};

int main()
{
  Date d1;
  d1.Print();
	return 0;
}


为了好友们, 有更好地观感体验, 与更好地理解 ! 现 附上有彩色的代码图样 :>

C++ ---->再谈构造函数(升级版)_01_再谈构造函数_02


----->解析 初始化列表 :>

---->初始化列表 :以一个冒号开始, 接着 以一个逗号进行分割 --->数据成员列表, 每一个 “成员变量” 后面跟着一个放在括号中的初始化值或者表达式 !


下面,进行 最为重要的特性 分析 :>

1. 每一个成员变量在初始化列表中只能出现一次(初始化有且只能初始化一次)

2. 类中成员, 必须放在初始化列表位置进行初始化:>

A. 引用成员变量;

B. const 成员变量;

C. 自定义类型成员(且该类中没有默认构造函数)


----->验证 初始化列表特性 :>

C++ ---->再谈构造函数(升级版)_01_再谈构造函数_03



----->优化版本 :>

C++ ---->再谈构造函数(升级版)_01_升级进化版_04


---->调试环节 :>

C++ ---->再谈构造函数(升级版)_01_再谈构造函数_05

C++ ---->再谈构造函数(升级版)_01_再谈构造函数_06

各位好友,此处的 自定义类型对象, 博主无法打印出来 !但还是, 能经过调试直观反映出来 !

----->此处 自定义类型对象, 没有默认构造函数, 需要进行赋值操作;有默认构造函数的前提下, 会去调用它自己的默认构造函数 !


------>初始化列表优先级高于缺省值 

---->验证 :>

C++ ---->再谈构造函数(升级版)_01_升级进化版_07

C++ ---->再谈构造函数(升级版)_01_再谈构造函数_08


各位好友, 上述代码模块, 请注意 --->标注区域 !

---->有关于 “ ret ” 随机值 ! 好友们 !可以这么想 -->既然 指针都有野指针, 那么引用也可以有 “ 野引用 ”

其实, 这只是为了方便理解, 特别起了这么一个 “ 叫法 ”

上一篇:汉诺塔问题C语言递归
下一篇:没有了
网友评论