一.什么是常量
常量的类型如下:
-
基本数据类型常量:
- 整数常量: 例如
10
,-5
,0x1A
。 - 浮点数常量: 例如
3.14
,-0.001
。 - 字符常量: 例如
'A'
,'a'
,'\n'
。 - 布尔常量: 例如
true
,false
。
- 整数常量: 例如
-
字符串常量:
- 字符串字面量: 例如
"Hello, World!"
,"test"
。 - 字符串字面量存储在只读内存区域,确保不会被修改
- 字符串字面量: 例如
二、如何声明常量
1.const关键字
const int MAX_VALUE = 100; // 全局常量
void exampleFunction() {
const double PI = 3.14159; // 局部常量
// PI = 3.14; // 错误:不能修改常量
}
2.#define宏定义
#define MAX_VALUE 100 // 宏常量
void exampleFunction() {
int value = MAX_VALUE;
// MAX_VALUE = 200; // 错误:宏常量不能修改
}
3.使用 constexpr
关键字(编译调用)
constexpr int MAX_VALUE = 100; // 编译时常量
void exampleFunction() {
constexpr double PI = 3.14159; // 编译时常量
// PI = 3.14; // 错误:不能修改常量
}
三、C++构造函数如何声明常量 (使用引用的方式传参)
.h文件
class SignalChannel : public QTreeWidgetItem {
public:
// 构造函数
SignalChannel(QTreeWidget *parent = nullptr, const QString &name = QString());
// 自定义函数
void customFunction();
// 重写虚函数
QVariant data(int column, int role) const override;
private:
// 私有成员变量
QString channelName;
};
.c文件
SignalChannel::SignalChannel(QTreeWidget *parent, const QString &name)
: QTreeWidgetItem(parent), channelName(name)
{
// 设置默认文本
setText(0, channelName);
}