6.6.12 Phương thức hằng của class

Bất kỳ hàm thành viên nào của lớp nào cũng có thể được khai báo là const.

Nó tương đương với một lời hứa rằng hàm đó sẽ không sửa đổi trạng thái của đối tượng thuộc lớp đó. Trong cú pháp của khai báo thì từ khoá const được đặt sau danh sách tham số, như sau:

  • Khai báo hàm:

type name(parameters) const;

  • Định nghĩa hàm:

type name(parameters) const { … }

Hãy xem khai báo lớp sau →

Bạn có thể thấy sự khác biệt giữa lớp này và lớp đã thảo luận ở bài trước không ?

Yes, hàm get được khai báo là một hàm const.

Kết quả là, dòng dưới đây sẽ được coi là hợp lệ:

Lưu ý: trình biên dịch sẽ cố gắng buộc chương trình phải giữ lời hứa. Bạn không nên sửa đổi bất kỳ biến thành viên nào của lớp hoặc gọi các hàm không phải là const bên trong hàm get bởi vì trình biên dịch sẽ coi đó là lỗi.