Fランク大学生に特化した就活性ブログ ※高学歴は厳禁

C++基本文法constの使用方法

プログラミング言語には「値を変えたくないとき」に使える便利な仕組みがあります。その代表がC++のconstです。しかし、C++では使い方に注意が必要で、特に初期化のルールを守らないとエラーが出ます。

この記事では、C++のconstの基本的な使い方、注意点、さらにJavaではなぜconstが存在しないのかについて解説します。


1. C++のconstとは?

constは「定数」を作るためのキーワードです。一度値を設定すると、プログラム中でその値を変更することができません。

基本的な使い方

constを使うときは、宣言と初期化を同時に行う必要があります。

C++のコード

const int x = 10; // OK: 宣言と初期化を同時に実行





この場合、xは常に10のままで変更できません。

エラーになる例

初期化を2行に分けるとエラーが発生します。

C++のコード

const int x; // エラー: 初期化されていない
x = 10; // エラー: 再代入できない

なぜエラーになるのでしょうか?
それは、C++ではconst変数を一度初期化すると、その後は変更が許されないというルールがあるためです。したがって、const変数は宣言と同時に初期化する必要があります。

2. 初期化時の注意点

const変数の初期化について、もう少し詳しく見てみましょう。

ローカル変数の場合

ローカルスコープ(関数内など)でのconstは、以下のように使う必要があります。

C++のコード

void example() {
const int a = 5; // OK: 初期化されている
// a = 10; // エラー: `const`変数は変更できない
}

グローバル変数の場合

グローバルスコープでは、const変数を初期化せずに宣言するとエラーになります。

C++のコード

const int b; // エラー: 初期化が必要

これは、C++ではconstが「ファイルスコープで静的な値」として扱われるためです。

4. Javaにconstはない?

C++に慣れた方は、「Javaではconstはどう使うの?」と思うかもしれません。しかし、Javaにはconstはありません。

代わりにfinalを使う

Javaでは、finalがC++のconstに相当します。

javaコードをコピーするfinal int x = 10; // 一度初期化すると値を変更できない
// x = 20;      // エラー: `final`変数は再代入できない

なぜJavaにはconstがないのか?

Javaの設計段階では、C++にある複雑な機能を減らし、シンプルさを追求しました。その一環でconstの代わりにfinalを採用し、さらに明確なルールを設けたのです。

実はJavaにはconstというキーワード自体が予約されていますが、使用されていません。将来の拡張のために予約されているだけです。


5. 実務での活用例

C++の場合

定数を管理するのに便利です。たとえば、円周率や物理定数などをコードに埋め込む場合const

Javaの場合

不変の値や設定値を扱うとき、finalを使います。


6. まとめ

  • C++では、const宣言と同時に初期化する必要があります。
  • 初期化を忘れるとエラーになるため、使う際は注意しましょう。
  • Javaにはconstはなく、代わりにfinalを使用します。

C++とJava、それぞれの違いを理解して上手に使い分けてみてください!

コメント

コメントする

目次