C++のローカルクラス
関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。
ローカルクラスの例を以下に示します。
#include<iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; }
上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。
ローカルクラス名は、その関数内でのみ使用でき、関数の外部では使用できません。また、ローカルクラスのメソッドは、その内部でのみ定義する必要があります。ローカルクラスは静的データメンバーを持つことはできませんが、静的関数を持つことはできます。
C++でローカルクラスを示すプログラムは次のとおりです。
例
#include<iostream> using namespace std; void func() { class LocalClass { private: int num; public: void getdata( int n) { num = n; } void putdata() { cout<<"The number is "<<num; } }; LocalClass obj; obj.getdata(7); obj.putdata(); } int main() { cout<<"Demonstration of a local class"<<endl; func(); return 0; }
出力
Demonstration of a local class The number is 7
上記のプログラムでは、クラスLocalClassが関数func()で宣言されているため、ローカルクラスです。クラス変数numと、numを初期化して表示する2つのメンバー関数。クラスの作成後、そのオブジェクトobjは関数func()で定義され、getdata()とputdata()はobjを使用して呼び出されます。これは次のように見えます。
void func() { class LocalClass { private: int num; public: void getdata( int n) { num = n; } void putdata() { cout<<"The number is "<<num; } }; LocalClass obj; obj.getdata(7); obj.putdata(); }
関数main()では、関数func()が呼び出されます。これを以下に示します。
cout<<"Demonstration of a local class"<<endl; func();
-
C++での多重継承
多重継承は、クラスが複数の基本クラスから継承する場合に発生します。したがって、クラスは、多重継承を使用して複数の基本クラスから機能を継承できます。これは、C++などのオブジェクト指向プログラミング言語の重要な機能です。 多重継承を示す図を以下に示します- C++で多重継承を実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; class A { public: int a = 5; A() { &
-
C#のローカル内部クラス
ネストされたクラスは、別の包含クラスで宣言されたクラスであり、内部クラスと外部クラスがあります。これはその包含クラスのメンバーであり、包含クラスのメンバーはネストされたクラスのメンバーにアクセスできません C#でネストされたクラスのサンプルコードスニペットを見てみましょう。 ここで、クラス2はローカル内部クラスです- 例 class One { public int num1; public class Two { public int num2; } } class D