C++ Const 関数の例

C Const Guan Shuno Li



この記事では、C++ の関数で使用される「const」キーワードに焦点を当てます。 「const」キーワードは、プログラムの実行中に変更できない定数値を指します。 C++ の「const」関数は、データ メンバーのクラス内での変更が制限されている関数です。 「cont」関数は、オブジェクトの値に対する予期しない変更を回避できるため、効率的に使用されます。

例 1: C++ での Const メンバー関数のプログラム

ここに、 const メンバー関数の簡単なプログラムがあります。

#include
を使用して 名前空間 標準 ;
クラス 私のクラス {
整数 1つで ;
公共 :
私のクラス ( 整数 n = 0 ) {
1つで = n ;
}
整数 getValue ( ) 定数 {
戻る 1つで ;
}
} ;
整数 主要 ( ) {
定数 MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
コート << 「オブジェクト c を使用した数値:」 << c. getValue ( ) ;
コート << \n オブジェクト c1 を使用した数値: ' << c1. getValue ( ) ;
戻る 0 ;
}

最初に、プログラムの入出力ストリームを有効にするヘッダー ファイルを定義します。次に、「num」変数を宣言する「MyClass」クラスと、MyClass() 関数と getVal() 関数のメンバー関数を設定します。 MyClass() 関数内で、「n」パラメータに値「0」を設定します。次に、引数「n」が変数「num」に代入されます。次に、「const」キーワードを使用して getVal() 関数を呼び出します。これは、関数呼び出しではオブジェクトの現在の状態を変更できないことを示します。 getVal() 関数は「num」メンバー変数を返します。







最後に、main() 関数に手を伸ばします。ここでは、MyClass() 関数の「c」および「c1」オブジェクトを定義し、これらのオブジェクトに値も渡します。 「c」オブジェクトには「const」キーワードが設定されており、このオブジェクトに割り当てられた値を変更できないことを示します。



オブジェクトによって呼び出される const メンバー関数の出力を以下に示します。このようにして、メンバー関数とオブジェクトで「const」キーワードを使用できます。







例 2: C++ のクラス外の Const メンバー関数のプログラム

ここで、const メンバー関数がクラス定義の外部で定義され、const メンバー関数を使用してプライベート メンバー変数値を設定および取得する別の実装があります。

#include
を使用して 名前空間 標準 ;

クラス 新しいクラス {
整数 ;

公共 :
空所 セットレコード ( 整数 ) ;

整数 レコードの取得 ( ) 定数 ;
} ;

空所 新しいクラス :: セットレコード ( 整数 バツ ) { = バツ ; }
整数 新しいクラス :: レコードの取得 ( ) 定数 { 戻る ; }

整数 主要 ( )
{
新しいクラス c ;
c. セットレコード ( 10 ) ;
コート << c. レコードの取得 ( ) ;

戻る 0 ;
}

ここでは、まずクラス「NewClass」を確立し、そこでプライベートに保たれる「i」変数を初期化します。その後、set_record() および get_record() メンバー関数が定義される public キーワードが作成されます。 set_record() メンバー関数は「i」変数の値を設定するために使用され、get_record() 関数はここで「i」変数の値を返すために使用されます。 「const」キーワードを get_record() メンバー関数で使用し、これを const メンバー関数として表すため、オブジェクトの状態は変更できないことに注意してください。その後、「i」変数値を設定するための set_record() 関数定義があります。



同様に、「i」変数値を取得する get_record() 関数定義があります。次に、「NewClass」クラスの「c」オブジェクトの宣言がある main() 関数を設定します。次に、非定数メンバー関数である「set_record」が呼び出され、「z」変数に値が割り当てられます。次に、get_record() const メンバー関数を呼び出して、「i」の値を出力します。

プライベート メンバー変数の値は const メンバー関数によって呼び出され、次のプロンプトに表示されます。

例 3: クラス外で独立関数として定義された Const メンバー関数のプログラム

ただし、「const」キーワードを持つメンバー関数がクラスの外でスタンドアロン関数として呼び出される、const メンバー関数の別のケースを実装します。

#include
を使用して 名前空間 標準 ;
クラス 方程式 {
整数 n1、n2 ;
公共 :
空所 セット方程式 ( 整数 バツ、 整数 そして )
{
n1 = バツ ;
n2 = そして ;
}
空所 show_equation ( )
{
コート << 「方程式は次のとおりです。」 << n1 << 「+」 << n2 << 「b」 << 終わり ;
}
友人 空所 楽しいです ( 定数 方程式 ) ;
} ;
空所 楽しいです ( 定数 方程式オブジェクト )
{
コート << '関数を使用する方程式は次のとおりです。' << オブジェクト n1 << 「+」 << オブジェクト n2 << 「b」 << 終わり ;
}
整数 主要 ( )
{
方程式オブジェクト ;
オブジェクト セット方程式 ( 5 8 ) ;
オブジェクト show_equation ( ) ;
楽しいです ( オブジェクト ) ;
}

ここでは、「Equation()」クラスを作成し、「n1」変数と「n2」変数を宣言します。ここでは、「n1」変数と「n2」変数の値を設定する set_Equation() メンバー関数も追加します。 show_Equation() 関数は、これらの変数を使用して生成された方程式を表示します。

この後には、「friend」キーワードを使用して定義された funIs() の関数宣言があります。この「friend」キーワードにより、「Equation」クラスのプライベート メンバーにアクセスできるようになります。次にクラス外でフレンド関数「funIs()」を呼び出し、「Equation」クラスの「obj」パラメータをconstとして入力します。最終的に、「Equation」クラスのオブジェクトを宣言する main() 関数が完成します。次に、set_Equation() 関数を使用して変数「n1」と「n2」の値を設定します。 「n1」および「n2」変数は、show_Equation() 関数を使用して値を表示するために使用されます。最後に、「Equation」クラスのフレンド関数「funIs」を呼び出して方程式を表示します。

方程式と const friends 関数を使用した方程式がプロンプトに表示されます。

例 4: C++ で値を更新する Const メンバー関数のプログラム (最悪の場合)

このプログラムは、「const メンバー関数内」と呼ばれる変数の値を変更しようとする const メンバー関数の最悪のシナリオを示しています。

#include
使用して 名前空間 標準 ;

クラス データ {
整数 ;

公共 :
空所 セット値 ( 整数 ) { = ; }
整数 getValue ( ) 定数
{

++ ;
戻る ;
}

} ;

整数 主要 ( )
{
データd ;
d. セット値 ( 二十 ) ;
コート << 終わり << d. getValue ( ) ;

戻る 0 ;
}

ここでは、まず「Data」クラスを構築し、クラス内で「v」変数を宣言します。この後、キーワード「public」を設定し、クラスのコンストラクタを表す「setValue()」とクラスのゲッターメンバ関数を表すgetValue()のクラスメンバ関数を宣言します。 setValue() 関数は、「i」変数をパラメータとして受け取ります。この「i」変数は「v」メンバー変数に割り当てられます。

この後、「v」変数の値を取得する getValue() 関数定義があります。 getValue() 関数は「const」キーワードで宣言されているため、「v」変数の値はいかなる場合も更新できないことを表します。ただし、「v」変数を意図的にインクリメントして値を変更しようとします。プログラムがこの段階に到達すると、エラーがスローされます。最後に、main() 関数呼び出しがあり、「Data」クラスの「d」オブジェクトを定義し、この「d」オブジェクトの値「20」を設定します。その後、getValue() 関数を呼び出してオブジェクトの「d」値を取得します。

プロンプトは、const メンバー関数オブジェクトの値を変更することができないため、「++v」でエラーが発生する以前の実装の結果を生成します。

結論

結論として、プログラムの値が誤って変更されることを避けるために使用される C++ の const 関数について詳しく説明します。 C++ の const メンバー関数は読み取り専用関数であり、呼び出されるオブジェクトの変更は許可されません。また、const 関数のさまざまなシナリオを実装して、C++ での機能を実証しました。