c++ - 使用默认值在 header 中定义静态整数

标签 c++

我如何在头文件中定义一个整数,以便每个包含头文件的 cpp 文件都具有 static const int id=0,同时让 cpps 能够用其他值重新定义它。

我尝试使用弱符号但无法使其工作。

最佳答案

如果您对预处理器定义没问题,您可以这样做:

// header.h
#ifndef CLASSID
#define CLASSID 0
#endif
static int id=CLASSID;

// class.cpp
#define CLASSID 1
#include "header.h"

这样源文件可能会覆盖默认值,但也可能会忽略它,这是您提到的那种方法。

关于c++ - 使用默认值在 header 中定义静态整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45783600/

相关文章:

c++ - C++使用删除的函数错误进行条件初始化

python - 在 C++ 中嵌入 Cython 类方法

c++ - scanf 没有按预期工作

c++ - 非类型模板参数

c++ - 不兼容的类型 - 是因为数组已经是指针了吗?

c++ - 在 C++ 类中定义一个 int 数组

c++ - 虚拟关键字内部结构

c++ - 此预处理器指令/C++ 需要解释

c++ - Clang 提示 POD 类实际上是非 POD

c++ - 迭代器失效 - end() 是否算作迭代器?