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

相关推荐
xiaoshuaishuai86 分钟前
C# DeepSeek V4 与 V3对比
开发语言·c#·量子计算
shehuiyuelaiyuehao14 分钟前
算法18,二分查找
java·开发语言·算法
IT策士17 分钟前
Python mcp研究:入门到精通
开发语言·python·qt
罗技12319 分钟前
告别“兼容模式“:Easysearch 有了自己的官方 Python 客户端
开发语言·python
weixin_4467291620 分钟前
java网络通讯
java·开发语言
IT策士21 分钟前
Python 常见的设计模型:入门到精通
开发语言·python
不会写DN26 分钟前
如何通过 Python 实现招聘平台自动投递
开发语言·前端·python
lbb 小魔仙29 分钟前
Ollama + Python 本地大模型部署与API调用:从零开始搭建私有AI助手
开发语言·人工智能·python
邪修king34 分钟前
C++ typename & auto 彻底讲透:核心作用、推导规则、避坑指南
开发语言·c++
会编程的土豆39 分钟前
MySQL 多表查询
开发语言·数据库·python·mysql