C++ 宏整数和对象定义

标签 c++ macros header definition

我缺乏使用 C++ 的经验,我正在尝试创建一个设置文件以将我所有的定义和全局变量放在那里,这样我的项目的类就可以从那里访问这些值。 Settings.h 文件可能如下所示:

#ifndef SETTINGS_H_
#define SETTINGS_H_

#define COLOR_BLUE = Vec3b(255, 0, 0);
#define COLOR_GREEN = Vec3b(0, 255, 0);
#define NOT_SET = 0;
#define IN_PROCESS = 1;
#define SET = 2;
#define FGD_PX = 255;
#define BGD_PX = 127;

#include <cv.h>
using namespace cv;

class Settings {
};
#endif /* SETTINGS_H_ */

想法是在不实例化类的情况下访问变量,而只是包含它。

有什么漂亮的方法可以做到这一点吗?

干杯,

最佳答案

#include <cv.h>
using namespace cv;

#ifndef SETTINGS_H_
#define SETTINGS_H_

#define COLOR_BLUE Vec3b(255, 0, 0)
#define COLOR_GREEN Vec3b(0, 255, 0)
#define NOT_SET 0
#define IN_PROCESS 1
#define SET 2
#define FGD_PX 255
#define BGD_PX 127

class Settings {
public:
   static int var1;
   static float var2;
   static short var3;
};

// initialization
int Settings::var1 = SET;
float Settings::var2 = 3.14;
short Settings::var3 = BGD_PX;

#endif /* SETTINGS_H_ */

用法:

int tmp = Settings::var1;

关于C++ 宏整数和对象定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036456/

相关文章:

c++ - 继承时,基类的基类是否也被继承?

json - Lisp 宏 - 如何正确输入类型

macros - 是否有用于构建列表的现有 lisp 宏?

c++ - 如何将 etrace 与动态库一起使用以按时间顺序跟踪 C++ 中的函数调用?

c - 在哪里放置包含语句、标题或源代码?

c++ - 完美转发到异步 lambda

c++ - 在 direct2D 中释放渐变画笔时可能会发生内存泄漏?

c++ - 通用引用与非模板 `const&`

c++ - 在 C++ 中,自定义头文件是可选的吗?

Wordpress:使用 svg 作为标题图片