QT中常量的定义和使用
阅读数:174 评论数:0
跳转到新版页面分类
C/C++
正文
1. 定义全局常量
全局常量可以在一个头文件中使用 const
关键字或 #define
预处理器来定义:
// constants.h
#ifndef CONSTANTS_H
#define CONSTANTS_H
const int GlobalConstant = 42;
#define ANOTHER_GLOBAL_CONSTANT 100
#endif // CONSTANTS_H
然后在其他文件中包含这个头文件来使用这些常量:
// main.cpp
#include "constants.h"
int main() {
int value = GlobalConstant;
int anotherValue = ANOTHER_GLOBAL_CONSTANT;
// ...
}
2. 类中的常量成员
在类中,常量通常作为静态成员定义:
// myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass {
public:
static const int ClassConstant = 10;
};
#endif // MYCLASS_H
使用时,可以通过类名来访问:
int value = MyClass::ClassConstant;
3. 枚举类型
使用枚举是定义一组相关常量的好方法:
// myenums.h
#ifndef MYENUMS_H
#define MYENUMS_H
enum MyEnum {
EnumValue1 = 1,
EnumValue2,
EnumValue3
};
#endif // MYENUMS_H
枚举的使用:
MyEnum value = EnumValue1;
4. 使用 constexpr
C++11 引入了 constexpr,它是定义编译时常量的理想方式:
// constants.h
#ifndef CONSTANTS_H
#define CONSTANTS_H
constexpr int CompileTimeConstant = 123;
#endif // CONSTANTS_H
5. 命名空间中的常量
如果你有一组相关的常量,可以将它们放在一个命名空间中:
// constants.h
#ifndef CONSTANTS_H
#define CONSTANTS_H
namespace Constants {
const double Pi = 3.14159;
const double Euler = 2.71828;
}
#endif // CONSTANTS_H
使用这些常量:
double myPi = Constants::Pi;