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

面试:C++类成员初始化顺序

1、非静态数据成员:按它们在类定义的声明顺序初始化,不会按它们在初始化列表的顺序。

2、静态数据成员:在main函数启动之前,并且只初始化一次

3、基类构造函数:如果类从一个或多个基类继承而来,基类的构造函数在子类的构造函数之前被调用

4、常量成员和引用成员:必须在初始化列表中初始化

参考代码:

class Base {
public:Base(int val) : base_val(val) {}
private:int base_val;
};class Derived : public Base {
public:Derived() : Base(10), a(5), b(a), c(15) {} // 基类Base先初始化private:int a; // 即使b在初始化列表中出现在a之前,a也会先初始化int b;int c;
};

在这个例子中,Derived类的构造函数首先调用base的构造函数,然后按照成员变量声明的顺序(即a,然后b,最后c)来初始化,即便在构造函数初始化列表中的顺序是不同的。

学习链接:https://github.com/0voice

http://www.lryc.cn/news/519231.html

相关文章:

  • 【Python】Python与C的区别
  • [开源]自动化定位建图系统(视频)
  • ISP流程--去马赛克详解
  • Objective-C语言的软件工程
  • Objective-C语言的语法糖
  • 设计模式中的代理模式
  • 15个学习Python 的编程游戏网站
  • 微信小程序实现拖拽盒子效果
  • Linux-蓝牙协议
  • moviepy 将mp4视频文件提取音频mp3 - python 实现
  • imageio 图片转mp4 保存mp4
  • Postman接口测试04|批量运行测试用例、参数化、Mock Server、Cookie鉴权、Newman生成测试报告
  • 学技术学英语:http状态码 401 Unauthorized vs 403 Forbidden
  • @LocalBuilder装饰器: 维持组件父子关系
  • React(二)——Admin主页/Orders页面/Category页面
  • 移动端屏幕分辨率rem,less
  • Docker Desktop 构建java8基础镜像jdk安装配置失效解决
  • 数据结构:栈(Stack)和队列(Queue)—面试题(一)
  • AR 眼镜之-拍照/录像动效切换-实现方案
  • 2025年中科院分区大类划分公布!新增8155本
  • S变换matlab实现
  • Springboot——钉钉(站内)实现登录第三方应用
  • 基于深度学习算法的AI图像视觉检测
  • cJson——序列化格式json和protobuf对比
  • 搭建一个fastapi的项目,调用ollama服务
  • Wireshark编译手册(Windows)
  • 在高德地图上加载3DTilesLayer图层模型/天地瓦片
  • 深入浅出负载均衡:理解其原理并选择最适合你的实现方式
  • STM32的存储结构
  • @SneakyThrows 注解详解