6.6.11 Đối tượng hằng

Một đối tượng của một lớp cũng có thể được khai báo là const.

Điều này có nghĩa là không được sửa đổi đối tượng trong suốt cuộc đời của nó. Trình biên dịch sẽ bảo vệ các đối tượng khỏi các nỗ lực cố gắng thay đổi trạng thái của nó. Vì thế:

  • trực tiếp sửa đổi biến thành viên của đối tượng đó là không được phép
  • gọi hàm thành viên của đối tượng đó cũng không được phép (dù hàm đó có làm thay đổi trạng thái của đối tượng hay không)

Hãy xem lớp sau →

Giả sử rằng chúng ta có các khai báo sau (tất cả hợp lệ):

Như bạn thấy thì các constructor được phép làm thay đổi nội dung của đối tượng. Tuy nhiên, ba dòng sau sẽ bị coi là không hợp lệ:

Chúng sẽ được coi là hợp lệ nếu bạn thay thế ‘o2’ bằng ‘o1’.