Trong C++, từ khóa const được sử dụng để định nghĩa một giá trị bất biến (không thay đổi) trong suốt thời gian chạy của chương trình. Việc sử dụng const giúp cải thiện tính bảo mật và ổn định của mã, đồng thời cung cấp cho trình biên dịch các thông tin để tối ưu hóa hiệu suất.
Dưới đây là các trường hợp phổ biến khi sử dụng từ khóa const trong C++.
constKhi khai báo một biến với từ khóa const, giá trị của biến đó sẽ không thể thay đổi sau khi được khởi tạo.
const int MAX_SIZE = 100;
MAX_SIZE là một biến hằng có giá trị là 100 và không thể thay đổi trong chương trình.constCó ba cách sử dụng const với con trỏ, và mỗi cách có ý nghĩa khác nhau:
Khai báo con trỏ tới dữ liệu không thay đổi, nghĩa là nội dung mà con trỏ trỏ đến không thể bị sửa đổi.
const int* ptr = &MAX_SIZE;
ptr có thể trỏ tới các vị trí khác nhau, nhưng giá trị tại vị trí mà nó trỏ tới không thể thay đổi.const (con trỏ không thay đổi)Một con trỏ const là con trỏ mà giá trị của chính con trỏ (địa chỉ mà nó trỏ đến) không thể thay đổi, nhưng dữ liệu mà nó trỏ tới có thể thay đổi.
int value = 10; int* const ptr = &value;
ptr luôn trỏ tới value, nhưng bạn có thể thay đổi giá trị của value thông qua con trỏ.const tới dữ liệu constCả con trỏ và dữ liệu mà nó trỏ tới đều không thay đổi.
const int* const ptr = &MAX_SIZE;
ptr và dữ liệu mà nó trỏ tới đều không thể thay đổi.constKhi khai báo một tham số hàm là const, điều này đảm bảo rằng giá trị của tham số đó không thể bị thay đổi trong thân hàm.
void printValue(const int value) {
// value không thể thay đổi bên trong hàm
std::cout
constKhi khai báo một phương thức thành viên là const, điều này đảm bảo rằng phương thức đó không thay đổi bất kỳ thành viên nào của đối tượng.
class MyClass {
public:
int getValue() const {
return value; // Không thể thay đổi giá trị của bất kỳ biến thành viên nào
}
private:
int value = 10;
};
getValue() không thể thay đổi trạng thái của đối tượng (giá trị các biến thành viên) vì nó được khai báo là const.constBạn có thể trả về một giá trị const từ hàm, đảm bảo rằng giá trị trả về không thể bị thay đổi bởi hàm gọi.
const int& getMaxValue() {
static const int max = 100;
return max;
}
getMaxValue() trả về một tham chiếu không thể thay đổi tới giá trị max.Sử dụng từ khóa const trong C++ giúp bảo vệ các giá trị không bị thay đổi một cách vô ý, cải thiện độ tin cậy và tính bảo mật của mã. Các ứng dụng của const có thể áp dụng cho biến, con trỏ, tham số hàm và phương thức, đem lại sự linh hoạt và an toàn trong lập trình.