当前位置: 首页 > java >正文

C++--类的构造函数与初始化列表差异

一,引言

在类中成员函数的构造函数担任其将对象初始化的作用,而初始化列表也有着相似的作用。大部分人建议都是初始化列表进行初始化,本文主要进行讲解二者的区别。

首先看一下构造函数的初始化方式:
 

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;class date
{
public:date(int year = 1900, int month = 1, int day = 1){// _year = year;_month = month;_day = day;}
private:int _day;int _month;int _year;
};
int main()
{date s1;date s2;return 0;
}

当定义对象时,自动调用构造函数,对对象进行初始化。

下面看一下初始化列表:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;class date
{
public:date(int year = 1900, int month = 1, int day = 1):_year(),_month(),_day(){// //_year = year;//_month = month;//_day = day;}
private:int _day;int _month;int _year;
};
int main()
{date s1;date s2;return 0;
}

两种都是对对象进行初始化,实际上通过看编译器的运行过程,发现两种并没有关系,

编译器会首先走初始化列表,之后走构造函数的主体内容。也就是说不管写不写初始化列表都要走构造函数的主体内容。

下面看一个例子:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;class date
{
public:date(int year = 1900, int month = 1, int day = 1):_year(2014),_month(1),_day(1){// _year = year;_month = month;_day = day;}
private:int _day;int _month;int _year;
};
int main()
{date s1(2025,12,2);date s2;return 0;
}

 首先走初始化列表

 对象的三个成员的值为初始化列表的值。

之后走构造函数的主体

这就说明不管有没有初始化列表和构造函数的主体是否执行没有关系。

进而说明两者本质上是没有关系的。

http://www.xdnf.cn/news/5294.html

相关文章:

  • 抖音视频上传功能测试全维度拆解——从基础功能到隐藏缺陷的深度挖掘
  • 【八股消消乐】项目中如何优化JVM内存分配?
  • [题解]2023CCPC黑龙江省赛 - Ethernet
  • Java多线程同步方法ReentrantLock显式锁实现方式
  • Python数据分析
  • Spring 6.x 详解介绍
  • 【从零实现JsonRpc框架#1】Json库介绍
  • 基于NI-PXI的HIL系统开发
  • MySQL 1366 - Incorrect string value:错误
  • MySQL:视图
  • 串口屏调试 1.0
  • ComfyUI 如何安装ComfyUI_SLK_joy_caption_two
  • window环境下,如何通过USB接口控制打印机
  • 质心均匀体(引力屏蔽技术)
  • 算法训练营第十三天|226.翻转二叉树、101. 对称二叉树、 104.二叉树的最大深度、111.二叉树的最小深度
  • 多模态大模型中的视觉分词器(Tokenizer)前沿研究介绍
  • 【入门】数字走向II
  • JavaScript 数组去重:11 种方法对比与实战指南
  • 什么是 B2B?2B 产品销售怎么找客户?
  • Unity基础学习(十)Camera组件
  • [ctfshow web入门] web67
  • JVM对象创建内存分配
  • [特殊字符]️ 快速检测与修复TLS 1.0/1.1漏洞指南
  • 人形机器人:主控芯片
  • 红黑树算法笔记(二)性能对比实验
  • 解密数据结构之位图和布隆过滤器
  • TCP IP
  • 社区商城分销团长扩充与扩散策略优化的系统方案
  • Information Fusion期刊期刊投稿经验分享
  • 23、DeepSeekMath论文笔记(GRPO)