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

Từ khóa có thể thay đổi trong C ++?

Thành viên dữ liệu có thể thay đổi là những thành viên có giá trị có thể được thay đổi trong thời gian chạy ngay cả khi đối tượng thuộc loại không đổi. Nó đối lập với hằng số.

Đôi khi logic được yêu cầu chỉ sử dụng một hoặc hai thành viên dữ liệu làm biến và một thành viên khác làm hằng số để xử lý dữ liệu. Trong tình huống đó, khả năng thay đổi là khái niệm rất hữu ích để quản lý các lớp.

Ví dụ

#include <iostream>
using namespace std;
code
class Test {
   public:
      int a;
   mutable int b;
   Test(int x=0, int y=0) {
      a=x;
      b=y;
   }
   void seta(int x=0) {
      a = x;
   }
   void setb(int y=0) {
      b = y;
   }
   void disp() {
      cout<<endl<<"a: "<<a<<" b: "<<b<<endl;
   }
};
int main() {
   const Test t(10,20);
   cout<<t.a<<" "<<t.b<<"\n";
   // t.a=30; //Error occurs because a can not be changed, because object is constant.
   t.b=100; //b still can be changed, because b is mutable.
   cout<<t.a<<" "<<t.b<<"\n";
   return 0;
}