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

C ++クラスの関数宣言の最後にある「const」の意味は?


関数宣言の最後にキーワード「const」が存在する場合があります。では、それはどういう意味ですか?

この1つの関数を使用すると、定数として作成できます。定数関数の考え方は、関数が呼び出されるオブジェクトから関数を変更することはできないということです。プログラムでは定数関数を使用することをお勧めします。

定数関数の一例を見てみましょう。

#include<iostream>
using namespace std;
class MyClass {
   int value;
   public:
      MyClass(int val = 0) {
         value = val;
      }
      int getVal() const {
         //value = 10; [This line will generate compile time error as the function is constant]
         return value;
      }
};

出力

The value is: 80

ここで、定数関数に関連するもう1つの重要なポイントを確認します。上記の例からわかるように、定数関数は任意のタイプのオブジェクトから呼び出すことができます。ただし、一部の非定数関数は定数オブジェクトから呼び出すことができません。

#include<iostream>
using namespace std;
class MyClass {
   int value;
   public:
      MyClass(int val = 0) {
         value = val;
      }
      int getVal(){
         return value;
      }
};
main() {
   const MyClass ob(80);
   cout<< "The value is: " << ob.getVal();
}

出力

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

  1. なぜC++でconst修飾子を使用するのですか?

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

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

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