C++ 语言特性07 - 静态成员的初始化

news2024/10/2 9:15:40

一:概述

        1. 静态成员变量通常在类定义内部声明,并在类定义外部定义和初始化。

class MyClass {
public:
    static int staticVar;  // 声明
};

int MyClass::staticVar = 42;  // 定义和初始化

       2. 从C++11开始,可以在类内直接初始化静态数据成员(对于基本数据类型和枚举类型)。这被称为内联初始化
 

class MyClass {
public:
    static const int staticVar = 42;  // C++11及之后版本支持的内联初始化
};

       3. 静态成员变量的初始化在main函数执行之前,且在任何对象创建之前完成。这意味着在任何对象构造之前,静态成员已经被正确初始化。

       4. 静态成员函数可以访问静态成员变量,但不能访问非静态成员变量。

class MyClass {
public:
    static int staticVar;

    static int getStaticVar() {
        return staticVar;
    }
};

int MyClass::staticVar = 10;  // 初始化

int main() {
    std::cout << MyClass::getStaticVar() << std::endl;  // 输出 10
    return 0;
}

        5. 静态成员变量的初始化是线程安全的。C++标准保证在任何线程开始运行之前,静态成员变量已经被初始化。

        6. 在类模板中,静态成员变量需要特别小心处理,因为它们需要在模板实例化时被初始化。

template <typename T>
class MyClass {
public:
    static T staticVar;
};

template <typename T>
T MyClass<T>::staticVar = T();  // 模板类静态成员的初始化

二:注意事项:     

   1. 确保静态成员变量在使用前已经被正确初始化,避免使用未初始化的静态成员变量。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio Dolphin 中Gradle下载慢的解决方法

我用的版本Android Studio Dolphin | 2021.3.1 Patch 1 1.Gradle自身的版本下载慢 解决办法&#xff1a;修改gradle\wrapper\gradle-wrapper.properties中的distributionUrl 将https\://services.gradle.org/distributions为https\://mirrors.cloud.tencent.com/gradle dis…

【测试类文档整理】软件项目测试方案(word)

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.…

查缺补漏----程序查询方式和中断方式计算题

1.程序查询方式 总结下来就是&#xff1a; 必须在外设传输完端口大小的数据时访问端口&#xff0c;以防止数据未被及时读出而丢失。 占CPU总时间&#xff1a;就是某段时间内设备用了多少时钟周期/PCU有多少个时钟周期 CPU的时钟周期数&#xff1a;就看主频&#xff0c;主频表示…

记录Mybatis分页查询排序问题: Encountered unexpected token: “and“ “AND“

通过Page.addOrder设置了字段排序 执行的时候在 com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor#autoCountSql 方法中执行 CCJSqlParserUtil.parse Select select (Select) CCJSqlParserUtil.parse(sql);报错&#xff1a; failed to concat o…

YOLOv1–v11: 版本演进及其关键技术解析

最新消息&#xff1a;Yolo11发布最新版本2024.10 YOLO (You Only Look Once) 是一种高效的目标检测算法&#xff0c;自其初代发布以来&#xff0c;经过多次迭代&#xff0c;逐步提升了检测速度和精度。本文将详细介绍 YOLO 从 v1 到 v11 的各个版本&#xff0c;涵盖每个版本的发…

高性价比PCB分板机高速主轴SycoTec 4025 HY

德国 SycoTec 4025 HY 迷你型高速主轴以其悠久的历史、卓越的性能、良好的散热和长寿命&#xff0c;成为PCB分板的高性价比选择。 一、4025 HY亮点 1.悠久历史与 拥有 50 多年的应用历史&#xff0c;被称为 “主轴之母”&#xff0c;充分证明了其在行业中的可靠性和稳定性。 …

人工智能 | 手工测试用例转Web自动化测试生成

简介 在传统编写 Web 自动化测试用例的过程中&#xff0c;基本都是需要测试工程师&#xff0c;根据功能测试用例转换为自动化测试的用例。市面上自动生成 Web 或 App 自动化测试用例的产品无非也都是通过录制的方式&#xff0c;获取操作人的行为操作&#xff0c;从而记录测试用…

迎国庆,开源完全免费工作流引擎AntFlow 0.9最强版本发布,支持tidb,提升易用性and more...

AntFlow是一款前端仿钉钉的企业级工作流引擎。后端既可嵌入到现有业务系统&#xff0c;也可以做为独立的流程引擎中台部署&#xff08;SAAS模式&#xff09;。嵌入业务系统模式已经在笔者所在企业使用多年&#xff0c;功能丰富&#xff0c;能适多种国产办公场景&#xff1b;简单…

sql-labs靶场第一关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①Order by判断列数 ②判断回显地方 ③爆库&#xff0c;查看数据库名称 ④爆表&#xff0c;查看security库的所有表 ⑤爆列&#xff0c;查看users表的所有…

【CKA】五、网络策略–NetworkPolicy

5、配置网络策略–NetworkPolicy 1. 考题内容&#xff1a; 2. 答题思路&#xff1a; 1、根据题目分析要创建怎样的网络策略 2、按题目要求查看ns corp-net的label 3、编写yaml&#xff0c;其中注意 namespace、label、port 3. 官网地址&#xff1a; https://kubernetes.io/…

【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换。使用…

数据结构-4.3.串的存储结构

一.串的顺序存储&#xff1a; 1.静态数组会由系统自动回收&#xff1b;动态数组需要手动回收&#xff1b; 2.优点&#xff1a;随机存取&#xff0c;可以立即找到所需的字符&#xff1b;缺点&#xff1a;插入和删除较麻烦&#xff1b; 3.串的顺序存储方案&#xff1a; 对于方…

双指针--收尾的两道题

双指针 (封面起到吸引读者作用&#xff0c;和文章内容无关哈&#xff0c;但是文章也是用心写的&#xff09; 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums…

面向代理的从单体到基于服务架构的转变的好处

论文标题&#xff1a;《Benefits of Agent-Oriented Transitioning from Monolithic To Service-Based Architectures》 作者信息&#xff1a; Daniel-Costel Bouleanu, University of Craiova, Romania; Polytechnic of Bari, ItalyMarco Alfredo Loaiza Carrillo, Universi…

根据视频id查询播放量

声明&#xff1a;文章仅用于学习交流,如有侵权请联系删除 如何根据视频ID查询视频的播放数量 在数字化时代&#xff0c;视频内容的消费已成为人们日常生活的重要组成部分。无论是社交媒体平台上的短视频&#xff0c;还是视频分享网站上的长视频&#xff0c;了解视频的播放数量…

TryHackMe 第5天 | Pre Security (四)

该学习路径讲解了网络安全入门的必备技术知识&#xff0c;比如计算机网络、网络协议、Linux命令、Windows设置等内容。过去三篇已经对前三块内容进行了简单介绍&#xff0c;本篇博客将记录 Windows设置 部分。 Windows Fundamentals Part 1 对于 Windows &#xff0c;肯定会感…

只需10秒,昂首资本发现短线交易4个优点

在金融市场&#xff0c;短线交易已经成为投资者追求高效收益的重要工具。那么&#xff0c;这种交易的本质究竟是怎样的&#xff1f;以下是昂首资本对短线交易的深入解析&#xff0c;以及其优缺点的详细分析。 短线交易的本质可以这样描述&#xff1a;交易会有相当小的止损&…

LeetCode 983.最低票价

在一个火车旅行很受欢迎的国度&#xff0c;你提前一年计划了一些火车旅行。在接下来的一年时间里&#xff0c;你要旅行的日子将以名为 days 的数组给出。每一项是一个 1 到 365 的整数。 火车票有三种不同的销售方式&#xff1a; 一张为期一天的通行证售价为cost[0]美元 一张为…

Stable Diffusion绘画 | 来训练属于自己的模型:素材准备篇

首先要说明的是&#xff0c;模型训练&#xff0c;需要显卡持续不间断地一致运行&#xff0c; 快则0.5-1小时左右&#xff0c;慢的话可能需要跑上几小时&#xff0c;甚至是几天&#xff0c; 原因跟显卡的配置和训练设置参数都有关系。 模型训练与显卡配置&#xff1a; 训练 L…

从零开始搭建UVM平台(七)-加入monitor

书接上回&#xff1a; 从零开始搭建UVM平台&#xff08;一&#xff09;-只有uvm_driver的验证平台 从零开始搭建UVM平台&#xff08;二&#xff09;-加入factory机制 从零开始搭建UVM平台&#xff08;三&#xff09;-加入objection机制 从零开始搭建UVM平台&#xff08;四&…