枚举用于多个文件,或多个文件的自动唯一常量
Enum over multiple files, or automatic unique constants over multiple files
在c++中是否有任何方法在编译时自动生成多个文件的常量?就像枚举在单个文件中自动生成常量一样,但是这些常量在多个文件中必须是唯一的。
,
classBase.hpp
classBase{
//blah blah
};
classA.hpp
class childA : public classBase{
private:
static const unsigned int mID = NEXT_ID;
};
classB.hpp
class childB : public classBase{
private:
static const unsigned int mID = NEXT_ID;
};
classC.hpp
class childC : public classBase{
private:
static const unsigned int mID = NEXT_ID;
};
所以在这种情况下,每个从classBase继承的类将自动分配下一个ID(0,1,2…)
我猜有一种方法可以做到#define
s,但我不知道有什么方法可以自动增加#define
每次分配给它,有办法做到这一点吗?
在编译时自己生成序列并不容易,但大多数编译器都支持用于此目的的宏:__COUNTER__
。它是一个计数器,每次在源代码中使用它时,编译器本身都会增加它,因此您可以跨多个文件使用它。例如,您的代码可以是:
class childB : public classBase {
private:
static const unsigned int mID = __COUNTER__;
};
如果你的编译器不提供宏(或者你需要更多的控制id的生成),那么你必须写更多的代码,但它可以通过模板元编程完成。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- c++多进程编写一个唯一的文件
- 我需要编写一个程序来读取一个文件,该文件将输出所有唯一的整数,如果已经看到整数,它将被关闭
- 尝试使用while循环从文件中读取数据.还必须检查以确保第一个和唯一的值不是-1
- 尝试创建一个读取.txt文件,显示它,计数唯一单词的程序,并在使用了多少次的情况下显示独特的单词.C
- 从输入文件读取整数,仅存储数组C 中的唯一整数
- 确定文本文件中的值是否唯一
- C++ 显示在 txt 文件中找到的唯一日期及其相关价格
- 使用外部定义的自定义删除程序在头文件中定义唯一指针
- 枚举用于多个文件,或多个文件的自动唯一常量
- 输入文件到数组,唯一的字
- 计算文件中唯一单词的最有效结构[c++]
- 如何在c++中管理文件唯一id
- C++ "for loop"将数据保存在数组中,然后写入文件唯一数据