C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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();

  1. C++での多重継承

    多重継承は、クラスが複数の基本クラスから継承する場合に発生します。したがって、クラスは、多重継承を使用して複数の基本クラスから機能を継承できます。これは、C++などのオブジェクト指向プログラミング言語の重要な機能です。 多重継承を示す図を以下に示します- C++で多重継承を実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; class A {    public:    int a = 5;    A() {     &

  2. C#のローカル内部クラス

    ネストされたクラスは、別の包含クラスで宣言されたクラスであり、内部クラスと外部クラスがあります。これはその包含クラスのメンバーであり、包含クラスのメンバーはネストされたクラスのメンバーにアクセスできません C#でネストされたクラスのサンプルコードスニペットを見てみましょう。 ここで、クラス2はローカル内部クラスです- 例 class One {    public int num1;    public class Two {       public int num2;    } } class D