C++で先頭に付く二重コロン「::」の意味とは?スコープ解決演算子の使い方を解説
C++において、先頭に付けられた二重コロン「::」はスコープ解決演算子(scope resolution operator)と呼ばれます。この演算子は、名前がどのスコープに属するかを明示的に指定するために使用され、主に以下のような用途があります。
クラスの外部でメンバ関数を定義する
スコープ解決演算子を使うと、クラス宣言の外側でメンバ関数を定義できます。クラス内では関数のプロトタイプ(宣言)のみを行い、実装を「クラス名::関数名」の形式で記述します。これにより、クラスのインターフェースと実装を分離でき、コードの可読性が向上します。
サンプルコード
#include<iostream>
using namespace std;
class Example {
int num;
public:
Example() {
num = 10;
}
void display();
};
void Example::display() {
cout << "The value of num is: "<<num;;
}
int main() {
Example obj;
obj.display();
return 0;
}実行結果
The value of num is: 10
同名のローカル変数が存在する場合にグローバル変数へアクセスする
ローカル変数と同じ名前のグローバル変数が存在する場合、通常はローカル変数が優先されます。しかし、先頭に「::」を付けることで、意図的にグローバル変数へアクセスすることが可能です。これは、名前の衝突を避けたい場面で非常に便利な機能です。
サンプルコード
#include<iostream>
using namespace std;
int num = 7;
int main() {
int num = 3;
cout << "Value of local variable num is: " << num;
cout << "\nValue of global variable num is: " << ::num;
return 0;
}実行結果
Value of local variable num is: 3 Value of global variable num is: 7
このように、スコープ解決演算子「::」は、クラスメンバの定義やグローバルスコープへのアクセスなど、C++プログラミングにおいて重要な役割を果たす演算子です。
-
C++のconstキーワードとは?定数宣言の基本とメリットを解説
C++におけるconstは、変数を「定数」として宣言するための型修飾子です。const付きで宣言された変数は、一度初期化するとその値を後から変更することができません。 constを使うメリット constを使用する最大の利点は、プログラム内で値が意図せず書き換えられるのを防げることです。例えば、円周率(PI)のような不変の値を扱う場合、プログラムのどの部分からもその値が変更されないようにしたいはずです。このような値はconstとして宣言しておくことで、誤った代入から守ることができます。 コンパイラの最適化との関係 const修飾された型を持つオブジェクトは、コンパイラによって読み取り専用メ
-
【Java】ローカル変数にデフォルト値はある?初期化しないとコンパイルエラーになる理由
ローカル変数とはJavaでは、ローカル変数はメソッド、コードブロック、コンストラクタなどの内部で宣言できる変数です。プログラムの制御がメソッドやブロック、コンストラクタに入るとローカル変数が生成され、制御がそこを抜けると破棄されます。ここで重要なのは、Javaのローカル変数にはデフォルト値(初期値)が自動的に設定されないという点です。つまり、変数を使用する前に必ず宣言と値の代入(初期化)を行わなければなりません。これを怠ると、コンパイルエラーが発生します。なお、これはフィールド(インスタンス変数やstatic変数)とは異なる挙動です。フィールドであれば、int型なら0、boolean型ならfa