构造函数初始化列表使用

初始化列表是C++中类构造函数的一种高效初始化方式。以下是一个简单的例子,演示了如何在类构造函数中使用初始化列表来初始化成员变量。

#include <iostream>

class Rectangle {
public:
    // 成员变量
    int width;
    int height;
    int area;

    // 构造函数使用初始化列表
    Rectangle(int w, int h) : width(w), height(h), area(w * h) {
        // 初始化列表已经完成了成员变量的初始化,这里可以添加其他代码
    }

    // 显示矩形信息的成员函数
    void display() {
        std::cout << "Rectangle width: " << width << ", height: " << height << ", area: " << area << std::endl;
    }
};

int main() {
    // 创建一个Rectangle对象
    Rectangle rect(5, 10);

    // 显示矩形的信息
    rect.display();

    return 0;
}

在这个例子中:

Rectangle类有三个成员变量:width、height和area。
构造函数Rectangle(int w, int h)接受两个参数:w和h。
初始化列表: width(w), height(h), area(w * h)在构造函数的开始处使用,它按照成员变量的声明顺序来初始化它们。
width和height分别用传入构造函数的w和h来初始化。
area通过计算width和height的乘积来初始化。
使用初始化列表的好处是:

  • 效率:成员变量直接使用传入构造函数的参数值,避免了额外的赋值操作。
  • 明确性:初始化列表清楚地表明了成员变量是如何被初始化的。
  • 依赖关系:如果成员变量之间存在依赖关系,初始化列表可以确保它们按照正确的顺序被初始化。

输出结果:

Rectangle width: 5, height: 10, area: 50

还有一种是:

StartInterface::StartInterface(const QPixmap &pixmap):QSplashScreen(pixmap)

在这个里pixmap并没有赋值给任何成员变量,而是赋值给了基类的构造函数,在这种情况下,pixmap 参数的作用是传递给基类构造函数,以便在 QSplashScreen 对象被创建时使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/499683.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VTK 9.2.6 源码和VTK Examples 编译 Visual Studio 2022

对于编译 VTK 源码和编译详细的说明&#xff1a; VTK 源码编译&#xff1a; 下载源码&#xff1a; 从 VTK 官方网站或者 GitHub 获取源代码。官网目前最近的9.3.0有问题&#xff0c;见VTK 9.3.0 编译问题 Visual Studio 2022去gitlab上选择9.2.6分支进行clone CMake 配置&…

Linux之文件系统

我们之前谈到的文件描述符fd,是与被加载到内存中的文件相关的&#xff0c;那么还有什么文件呢&#xff1f;磁盘文件 内存文件 ------ 断电失效 磁盘文件 ------ 不受断电的影响 磁盘存储器存、取信息的最基本单位是扇区。 —个扇区能存储512Bytes的数据,OS与磁盘交互的单位…

Spring-01

Spring 1.Spring是什么? spring是一个开源的Java应用框架&#xff0c;它提供了一套全面的基础设施支持 2.Spring框架的主要特点 1&#xff09;依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09; 2&#xff09;面向切面编程&#xff08;AOP&#xff09…

Redis命令-Key的层级结构

基础篇Redis 4.4 Redis命令-Key的层级结构 Redis没有类似MySQL中的Table的概念&#xff0c;我们该如何区分不同类型的key呢&#xff1f; 例如&#xff0c;需要存储用户.商品信息到redis&#xff0c;有一个用户id是1&#xff0c;有一个商品id恰好也是1&#xff0c;此时如果使…

长篇分享,如何学习电路设计?

本文来自看海原创视频教程&#xff1a;《运放秘籍》运算放大器基础精讲及应用第一部*开天 微信公众号&#xff1a;工程师看海 【淘宝】https://m.tb.cn/h.5PAjLi7?tkvmMLW43KO7q CZ3457 「运放秘籍_运算放大器Multisim仿真视频教程第一部开天_工程师看海」 点击链接直接打开 …

王道C语言督学营OJ课后习题(课时14)

#include <stdio.h> #include <stdlib.h>typedef char BiElemType; typedef struct BiTNode{BiElemType c;//c 就是书籍上的 datastruct BiTNode *lchild;struct BiTNode *rchild; }BiTNode,*BiTree;//tag 结构体是辅助队列使用的 typedef struct tag{BiTree p;//树…

OpenGL的MVP矩阵理解

OpenGL的MVP矩阵理解 右手坐标系 右手坐标系与左手坐标系都是三维笛卡尔坐标系&#xff0c;他们唯一的不同在于z轴的方向&#xff0c;如下图&#xff0c;左边是左手坐标系&#xff0c;右边是右手坐标系 OpenGL中一般用的是右手坐标系 1.模型坐标系&#xff08;Local Space&…

保理业务产品方案

常见的信贷业务流程 产品架构 一般分为贷前、贷中、贷后三个部分&#xff1a; 贷前一般处理客户入驻、资质审批、授信项目准入&#xff1b; 贷中一般处理处理具体的融资申请、审批、中登登记、资产锁定、放款事务&#xff1b; 贷后一般处理客户还款冲销、账款跟踪、到期日调整…

GRE_MGRE综合实验

目录 1、R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址。 IP配置 配置公网全网通 2、&#xff08;1&#xff09;R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方。 PAP认证 &#xff08;2&#xff09;R2与R5之间使用ppp的CHAP认证&am…

顺序栈、链式栈、顺序队列、链式队列的ADT及其实现

顺序栈ADT及其实现 链式栈ADT及其实现 顺序队列的ADT及其实现 在数组中队首队尾的分配方案 第三中方案&#xff0c;即达到入队出队操作的时间代价是O&#xff08;1&#xff09; 同时可充分利用空间&#xff0c;不会出现空间似乎用完了的假象 时间性能和空间性能发挥到最大 链…

Qt FFmpeg开发环境配置以及测试 - 不编译源码

Qt FFmpeg环境配置以及测试 引言一、下载二、配置三、测试 引言 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。它采用了LGPL或GPL许可证&#xff0c;并提供了录制、转换以及流化音视频的完整解决方案。 FFmpeg包含了非常先进的…

【C++】map set

文章目录 1. 关联式容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set 的介绍3.1.2 set 的使用 3.2 map3.2.1 map 的介绍3.2.2 map 的使用 3.3 multiset3.3.1 multuset 的介绍3.3.2 multiset 的使用 3.4 multimap3.4.1 multimap 的介绍3.4.2 multimap 的使用 1. 关联式容器…

【文献分享】PyPlume程序:快速海洋表面传输评估的工具包

PyPlume: A toolkit for rapid ocean surface transport assessments PyPlume&#xff1a;快速海洋表面传输评估的工具包 PyPlume 是一个 Python 工具箱和管道&#xff0c;用于统一从模型和观测加载二维洋流矢量场、模拟轨迹模型以及分析和可视化粒子轨迹的过程。提供了 Ju…

Java_21 完成一半题目

完成一半题目 有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目&#xff0c;整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题&#xff0c;请返回被选的 N 道题目至少包含多少种知识点类型。 示例…

python requirement.txt编译问题,代理问题为解决。

Date: 03/28/2024 11:00-12:00 Date: 03/27/2024 19:00-21:00 问题现象&#xff1a;开启代理后&#xff0c;无法正常下载 PS D:\workspace\winform\canvas\mysite依赖包> python -m pip install flatlib-0.2.3-py3-none-any.whl Looking in indexes: https://mirrors.ust…

WHM面板备份与恢复方法

上周有一个Hostease客户&#xff0c;购买了WHM面板的服务器&#xff0c;联系我们关于WHM面板中备份如何设置。接下来&#xff0c;我们分享如何在WHM面板中进行备份设置。 以下是在 WHM 面板中进行备份和恢复的基本步骤&#xff1a; 备份配置&#xff1a; 登录 WHM 控制面板&…

《 Arm Compiler 5.06 》__ARM编译器官网下载、安装和使用说明(小白也能懂)

目录 一、前言 二、官方网站下载 三、我的资源 四、编译器安装在 Keil 软件上 五、Keil选择编译器V5 “ V5.06 update 7(build 960) ” 六、测试 (*&#xffe3;︶&#xffe3;)创作不易&#xff01;期待你们的 点赞、收藏和评论喔。 一、前言 【Keil MDK-Arm5.37】不再…

Linux课程____selinux模式

一、是什么 它叫做“安全增强型 Linux&#xff08;Security-Enhanced Linux&#xff09;”&#xff0c;简称 SELinux&#xff0c;它是 Linux 的一个安全子系统 二、有啥用 就是最大限度地减小系统中服务进程可访问的资源&#xff08;根据的是最小权限原则&#xff09;。避免…

三个对象组练习.java

题目&#xff1a;定义数组存储3部汽车对象&#xff1b;汽车属性&#xff1a;品牌&#xff0c;价格&#xff0c;颜色&#xff1b;创造3个汽车对象&#xff0c;数据通过键盘录入而来&#xff0c;并把数据存储到数组当中 分析&#xff1a; 在main&#xff08;&#xff09;里面定义…

QT----基于QT的人脸考勤系统ubuntu系统运行,编译到rk3588开发板运行

目录 1 Ubantu编译opencv和seetaface库1.1 Ubantu编译opencv1.2 Ubuntu编译seetaface1.3 安装qt 2 更改代码2.1 直接运行报错/usr/bin/ld: cannot find -lGL: No such file or directory2.2 遇到报错摄像头打不开2.3 修改部分代码2.4 解决中文语音输出问题 3 尝试交叉编译rk358…