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

C ++で静的クラスを作成するにはどうすればよいですか?


C++には静的クラスのようなものはありません。最も近い近似は、静的データメンバーと静的メソッドのみを含むクラスです。

クラスの静的データメンバーは、クラスのオブジェクトの数に関係なく、メモリ内に1つのコピーしかないため、すべてのクラスオブジェクトによって共有されます。クラス内の静的メソッドは、静的データメンバー、他の静的メソッド、またはクラス外のメソッドにのみアクセスできます。

C++のクラスの静的データメンバーと静的メソッドを示すプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Example {
   public :
   static int a;
   static int func(int b) {
      cout << "Static member function called";
      cout << "\nThe value of b is: " << b;
   }
};
int Example::a=28;
int main() {
   Example obj;
   Example::func(8);
   cout << "\nThe value of the static data member a is: " << obj.a;
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

Static member function called
The value of b is: 8
The value of the static data member a is: 28

上記のプログラムを理解しましょう。

クラスExampleでは、aはデータ型intの静的データメンバーです。メソッドfunc()は、「呼び出された静的メンバー関数」を出力し、bの値を表示する静的メソッドです。これを示すコードスニペットは次のとおりです。

class Example {
   public :
   static int a;
   static int func(int b) {
      cout << "Static member function called";
      cout << "\nThe value of b is: " << b;
   }
};
int Example::a = 28;

関数main()では、クラスExampleのオブジェクトobjが作成されます。関数func()は、クラス名とスコープ解決演算子を使用して呼び出されます。次に、aの値が表示されます。これを示すコードスニペットは次のとおりです。

int main() {
   Example obj;
   Example::func(8);
   cout << "\nThe value of the static data member a is: " << obj.a;
   return 0;
}

  1. C ++を使用してOpenCVでバイナリイメージを作成するにはどうすればよいですか?

    バイナリイメージは、白黒の2色を表す単なるデジタルイメージです。画像処理の観点から、バイナリ画像には、0と1の2つの可能な値を持つピクセルが含まれています。ピクセルの値が0の場合、それは純粋な黒色を表します。ピクセルの値が1の場合、それは純粋な白色を意味します。 グレースケール画像では、それぞれに256の異なる可能な値があります。しかし、バイナリイメージでは、可能な値は2つだけです。バイナリイメージには、さまざまなタイプのアプリケーションがあります。たとえば、形態学的変換には2値画像が必要であり、背景からのオブジェクト形状の抽出には2値画像が必要です。OpenCVを使用すると、画像を2値画像

  2. Python名前空間を作成するにはどうすればよいですか?

    各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。したがって、名前空間を作成する場合は、関数を呼び出すか、オブジェクトをインスタンス化するか、モジュールをインポートするか、パッケージをインポートするだけです。たとえば、名前空間というクラスを作成できます。そのクラスのオブジェクトを作成すると、基本的に名前空間が作成されます。 例 このクラスでは、名前空間に付加する変数名を渡すこともできます。たとえば、 class Namespace: