Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tại sao dùng const qualifier trong C++?

Chúng ta dùng const qualifier** để khai báo biến là hằng số – tức là không thể thay đổi giá trị sau khi đã khởi tạo. Việc dùng const mang lại lợi ích lớn.

Lợi ích chính

  • An toàn: Ngăn chặn sửa đổi vô ý (ví dụ: hằng số PI, cấu hình hệ thống).
  • Tối ưu hóa: Biên dịch có thể đặt đối tượng const vào bộ nhớ chỉ đọc (read-only memory). Nếu địa chỉ của đối tượng const không bao giờ được lấy, nó có thể không được lưu trữ כלל.
  • Tự tài liệu hóa: Rõ ràng ý định thiết kế – biến này không thay đổi.
  • Overloading: Cho phép nạp chồng hàm dựa trên const (const vs non-const member function).

Ví dụ

#include <iostream>
using namespace std;

int main() {
    const int x = 10;
    x = 12;  // LỖI BIÊN DỊCH: assignment of read-only variable 'x'
    return 0;
}

Const với con trỏ ( quan trọng )

Khai báo Ý nghĩa
const int* p hoặc int const* p Con trỏ tới int const – không thể sửa đổi giá trị qua con trỏ
int* const p Con trỏ const tới int – không thể thay đổi địa chỉ con trỏ trỏ đến
const int* const p Cả hai: con trỏ const tới int const

Best practice

Mặc định khai báo const cho mọi biến/hàm tham số không cần sửa đổi. Chỉ bỏ const khi thực sự cần thay đổi giá trị.