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

相关推荐
我不是懒洋洋2 分钟前
从零实现一个分布式监控:Prometheus的核心设计
c++
admin and root3 分钟前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
踏月的造梦星球8 分钟前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
An_s9 分钟前
c++对接pdfium(一)win系统篇
开发语言·c++
Zwarwolf16 分钟前
Rust零散知识点项目汇总
开发语言·rust
-银雾鸢尾-18 分钟前
C#中HashTable相关方法
开发语言·c#
众少成多积小致巨23 分钟前
C++ 规范参考(上)
c++
茯苓gao24 分钟前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
ihuyigui32 分钟前
海外签收通知短信接口
android·java·开发语言·前端·数据库·后端
雪的季节37 分钟前
Python基础5-18
开发语言·python