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