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

相关推荐
2301_807367195 小时前
C++中的解释器模式变体
开发语言·c++·算法
always_TT6 小时前
C语言中的字符与字符串(char数组)
c语言·开发语言
forAllforMe6 小时前
LAN9252 从机寄存器配置--C语言举例
c语言·开发语言
weixin_537590456 小时前
《C程序设计语言》练习答案(练习1-4)
c语言·开发语言
chushiyunen7 小时前
python中的内置属性 todo
开发语言·javascript·python
麦麦鸡腿堡7 小时前
JavaWeb_请求参数,设置响应数据,分层解耦
java·开发语言·前端
2301_819414307 小时前
C++与区块链智能合约
开发语言·c++·算法
不想看见4047 小时前
Valid Parentheses栈和队列--力扣101算法题解笔记
开发语言·数据结构·c++
炸膛坦客7 小时前
单片机/C/C++八股:(十五)内存对齐、结构体内存对齐
c语言·开发语言·单片机
老约家的可汗7 小时前
C/C++内存管理探秘:从内存分布到new/delete的底层原理
c语言·c++