class User {
QString name;
public:
QString getUserName() const { // 尾部 const
return name;
}
void setUserName(const QString& n) { // 參數 const 引用
name = n;
}
};
const char& operator[](size_t i) const; // 只讀訪問
char& operator[](size_t i); // 讀寫訪問
| 形式 | 含義 | 示例 |
|---|---|---|
| 常量變量 | 初始化後不可修改 | `const int MAX = 100;` |
| 常量引用 | 綁定對象不可通過此引用修改,延長臨時對象壽命 | `const QString& ref = str;` |
| 常量指針 (底層) | 指向常量對象,不可通過指針修改內容 | `const int* p = &val;` |
| 常量指針 (頂層) | 指針本身不可修改指向 | `int* const p = &val;` |
| 常量成員函數 | 不修改 `this` 指向對象邏輯狀態 | `int get() const;` |
| mutable 成員 | 在 `const` 函數中允許修改 (緩存、鎖、統計計數) | `mutable int accessCount;` |
Qt 大量使用 `const` 成員函數 (如 `QString::length() const`),配合隱式共享 (Copy-on-Write) 機制,`const` 版本返回引用計數增加,非 `const` 版本觸發分離拷貝,**正確使用 const 是高效使用 Qt 容器的關鍵**。