C++17 inline静态变量,静态变量不用再类内定义类外初始化了

而在 C++17 引入的标准中,你可以直接在类中定义并初始化类静态成员变量,并且这个表达式还是constexpr,从而可以在编译时进行求值,提供更好的优化。

例如:

c 复制代码
// MyClass.h
class MyClass {
public:
    inline static int myVar = 42;
};

这使得静态成员变量的定义和初始化更加更加更加更加更加方便

如果是C++17之前,想要让头文件中的类静态成员变量在全局可见,就必须在头文件的类中定义,在.cpp文件中包含该头文件并进行初始化,比如:

c 复制代码
// MyClass.h
class MyClass {
public:
	static int myVar;
};

// MyClass.cpp
#include "MyClass.h"
int MyClass::myVar = 42;

然后再在其他任何.cpp文件中包含MyClass.h文件,使用MyClass::myVar

相关推荐
Ulyanov10 小时前
高保真单脉冲雷达导引头回波生成:Python建模与实践
开发语言·python·仿真·系统设计·单脉冲雷达
Mr_WangAndy10 小时前
C++数据结构与算法_线性表_数组_概念动态数组,刷题
c++·二分查找·数组刷题·数组字符串逆序·零移动·有序数组的平方
阿猿收手吧!10 小时前
【C++】jthread:优雅终止线程新方案
开发语言·c++
lly20240610 小时前
《JavaScript 实例》
开发语言
十五年专注C++开发11 小时前
C++中各平台表示Debug的宏
开发语言·c++·debug
张小凡vip11 小时前
Python异步编程实战:基于async/await的高并发实现
开发语言·python
玩c#的小杜同学11 小时前
源代码保卫战:给C# 程序(混淆、加壳与反逆向实战)
开发语言·笔记·c#
阿猿收手吧!13 小时前
【C++】Ranges:彻底改变STL编程方式
开发语言·c++
云游云记13 小时前
php 随机红包数生成
开发语言·php·随机红包
程序员林北北13 小时前
【前端进阶之旅】JavaScript 一些常用的简写技巧
开发语言·前端·javascript