C ++でスコープ解決演算子を最大限に活用する方法は?



この記事では、C ++のスコープ解決演算子を紹介し、詳細を理解するためにプログラムによるデモンストレーションを行います。

名前が示すように、スコープ解決演算子を使用して、可変スコープによる非表示の名前を取得し、引き続き使用できるようにします。この記事では、C ++でスコープ解決演算子を使用する方法と、その目的とは何であるかを理解します。 。

C ++では、スコープ解決演算子は::です。 C ++のスコープ解決演算子は、次の目的で使用できます。





それでは、例を使って、それぞれの目的を1つずつ理解していきましょう。

ローカル変数がある場合のグローバル変数へのアクセス 同じ名前

同じ名前のローカル変数がある場合は、スコープ解決演算子を使用してグローバル変数にアクセスできます。以下の例では、グローバルスコープとローカルスコープの両方でnumという名前の2つの変数があります。したがって、メインクラスのグローバルnum変数にアクセスするには、スコープ解決演算子(:: num)を使用する必要があります。



#include using namespace std int num = 30 //グローバル変数の初期化numint main(){int num = 10 //ローカル変数の初期化numcout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

出力

C ++のスコープ解決演算子に関するこの記事に進む



クラス外の関数の定義

クラス内で関数を宣言し、後でそれをクラス外で定義したい場合は、スコープ解決演算子を使用してそれを行うことができます。以下の例では、ClassBikeで関数Speedを宣言しています。後で、スコープ解決演算子を使用してメインクラスで関数を定義します。

#include using namespace std class Bike {public://関数宣言のみvoid Speed()} // Bikeクラスの外部でSpeed関数を定義する:: void Bike :: Speed(){cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

出力

C ++のスコープ解決演算子に関するこの記事に進む

クラスの静的へのアクセス 変数

クラス名とスコープ解決演算子(つまり、class_name :: static_variable)を使用して、クラスの静的変数にアクセスできます。以下の例でわかるように、クラスで静的変数を宣言しています。スコープ解決演算子を使用して、クラスの外部で変数を定義しています。次に、クラス名とスコープ解決演算子を使用してアクセスします。

#include using namespace std class Try {static int num1 public:static int num2 //ローカルパラメータはクラスメンバーを非表示にします//クラスメンバーは:: void function(int num1){// num1を使用してアクセスできます:: //ローカル変数num1coutにもかかわらず<< 'Static num1: ' << Try::num1 cout << 'nLocal num1: ' << num1 } } // Defining a static members explicitly using :: int Try::num1 = 10 int Try::num2 = 15 int main() { Try o int num1 = 20 o.function(num1) cout << 'nTry::num2 = ' << Try::num2 return 0 } 

出力

C ++のスコープ解決演算子に関するこの記事に進む

別のクラス内のクラスを参照する

両方のクラスで同じ変数名を持つネストされたクラスを作成できます。スコープ解決演算子を使用して、両方の変数にアクセスできます。内部クラス変数には、次を使用する必要があります Outer_Class :: Inner_Class :: variable。

#include using namespace std class Outside_class {public:int num class Inside_class {public:int num static int x}} int Outside_class :: Inside_class :: x = 5 int main(){Outside_class A Outside_class :: Inside_class B}

C ++のスコープ解決演算子に関するこの記事に進む

多重継承の場合

同じ変数名を持つ2つの親クラスがあり、それらの両方を子クラスで継承している場合は、クラス名とともにスコープ解決演算子を使用して、個々の変数にアクセスできます。

以下の例では、2つの親クラスParent1とParent2を作成しており、どちらも変数numを持っています。子クラスで両方を継承している場合、クラス名とスコープ解決演算子を使用して両方のnum変数にアクセスできます。

#include using namespace std class Parent1 {protected:int num public:Parent1(){num = 100}} class Parent2 {protected:int num public:Parent2(){num = 200}} class Child:public Parent1、public Parent2 { public:void function(){cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

出力

C ++のスコープ解決演算子に関するこの記事に進む

名前空間

2つの名前空間があり、両方に同じ名前のクラスが含まれているとします。したがって、競合を回避するために、スコープ解決演算子で名前空間名を使用できます。以下の例では、 std :: cout

#include int main(){std :: cout<< 'Hello' << std::endl } 

出力

上記のプログラムを実行した後、C ++のスコープ解決演算子に関するすべてを理解できたはずです。このブログがあなたにとって有益で付加価値があることを願っています。

ダブルをintにキャストできますか

上記のプログラムを実行した後、C ++のスコープ解決演算子を理解できたはずです。これで、「Javaでのクイックソート」に関するこの記事は終わりです。詳細については、信頼できるオンライン学習会社であるEdurekaによるJavaトレーニングをご覧ください。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Hibernate&SpringなどのさまざまなJavaフレームワークに加えて、コアJavaコンセプトと高度なJavaコンセプトの両方についてトレーニングするように設計されています。

質問がありますか?このブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。