Computer >> Máy Tính >  >> Lập trình >> C ++

Lớp lưu trữ có thể thay đổi trong C ++


Bộ chỉ định lớp lưu trữ có thể thay đổi được chỉ được sử dụng trên một thành viên dữ liệu lớp để làm cho nó có thể sửa đổi được mặc dù thành viên đó là một phần của đối tượng được khai báo là const. Bạn không thể sử dụng công cụ xác định có thể thay đổi với các tên được khai báo là tĩnh hoặc const, hoặc các thành viên tham chiếu.

Trong ví dụ sau -

class A
{
   public:
   A() : x(4), y(5) { };
   mutable int x;
   int y;
};

int main()
{
   const A var2;
   var2.x = 345;
   // var2.y = 2345;
}

trình biên dịch sẽ không cho phép gán var2.y =2345 vì var2 đã được khai báo là const. Trình biên dịch sẽ cho phép gán var2.x =345 vì A ::x đã được khai báo là có thể thay đổi.