C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++の可変キーワード?


ここでは、C++の可変キーワードとは何かを確認します。ミュータブルは、C++のストレージクラスの1つです。可変データメンバーはそのようなメンバーであり、いつでも変更できます。オブジェクトがconst型であっても。変数として1つのメンバーのみが必要で、定数として他のメンバーが必要な場合は、それらを可変にすることができます。アイデアを得るための1つの例を見てみましょう。

#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)

  1. 自動キーワードはC++で何をしますか?

    Autoは、C ++がCから「継承」したキーワードであり、ほぼ永久に存在していましたが、実際には使用されていませんでした。これはすべて、C++11のコンテキストから型の推定を行うためのautoの導入によって変更されました。 C ++ 11より前は、各データ型をコンパイル時に明示的に宣言する必要があり、実行時の式の値を制限しますが、C ++の新しいバージョンの後は、プログラマーが型の推定をコンパイラー自体に任せることができる多くのキーワードが含まれています。 型推論機能を使用すると、コンパイラーがすでに知っていることを書き出すために費やす時間を短縮できます。すべての型はコンパイラフェーズでの

  2. C ++のconstキーワードとは何ですか?

    const修飾子を使用して、変数を定数として宣言します。つまり、変数が初期化されると、値を変更することはできません。 constを使用すると、非常に大きなメリットがあります。たとえば、PIの値のような定数値がある場合、プログラムのどの部分もその値を変更したくないでしょう。したがって、それを定数として宣言する必要があります。 const修飾型で宣言されたオブジェクトは、コンパイラによって読み取り専用メモリに配置される場合があります。また、constオブジェクトのアドレスがプログラムに取り込まれない場合は、まったく格納されない場合があります。たとえば、 #include<iostream&