C ++中的可变关键字?

在这里,我们将了解C ++中的mutable关键字是什么。可变是C ++中的存储类之一。可变数据成员就是这种成员,可以随时更改。即使对象是const类型。当我们只需要一个成员作为变量,而另一个则是常量时,则可以使它们可变。让我们看一个例子来了解这个想法。

示例

#include <iostream>

using namespace std;

class MyClass{

   int x;

   mutable int y;

   public:

   MyClass(int x=0, int y=0){

      this->x = x;

      this->y = y;

   }

   void setx(int x=0){

      this->x = x;

   }

   void sety(int y=0) const { //member function is constant, but data will be changed

      this->y = y;

   }

   void display() const{

      cout<<endl<<"(x: "<<x<<" y: "<<y << ")"<<endl;

   }

};

int main(){

   const MyClass s(15,25); // A const object

   cout<<endl <<"Before Change: ";

   s.display();

   s.setx(150);

   s.sety(250);

   cout<<endl<<"After Change: ";

   s.display();

}

输出结果

[Error] passing 'const MyClass' as 'this' argument of 'void MyClass::setx(int)' discards qualifiers [-fpermissive]

如果我们通过删除行[s.setx(150); ],然后-

输出结果

Before Change:

(x: 15 y: 25)

After Change:

(x: 15 y: 250)

以上是 C ++中的可变关键字? 的全部内容, 来源链接: utcz.com/z/350317.html

回到顶部