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

C ++のプロキシクラスとは何ですか?


ここでは、C++のプロキシクラスとは何かを確認します。 Proxyクラスは、基本的にProxyデザインパターンです。このパターンでは、オブジェクトは別のクラスに変更されたインターフェイスを提供します。一例を見てみましょう。

この例では、バイナリ値[0、1]のみを格納できる配列クラスを作成します。これは最初の試みです。

サンプルコード

class BinArray {
   int arr[10];
   int & operator[](int i) {
      //Put some code here
   }
};

このコードでは、条件チェックはありません。しかし、arr [1] =98のようなものを入れた場合、operator []に文句を言わせたいのです。しかし、値ではなくインデックスをチェックしているため、これは不可能です。次に、プロキシパターンを使用してこれを解決しようとします。

サンプルコード

#include <iostream>
using namespace std;
class ProxyPat {
   private:
      int * my_ptr;
   public:
      ProxyPat(int& r) : my_ptr(&r) {
      }
      void operator = (int n) {
         if (n > 1) {
            throw "This is not a binary digit";
         }
         *my_ptr = n;
      }
};
class BinaryArray {
   private:
      int binArray[10];
   public:
      ProxyPat operator[](int i) {
         return ProxyPat(binArray[i]);
      }
      int item_at_pos(int i) {
         return binArray[i];
      }
};
int main() {
   BinaryArray a;
   try {
      a[0] = 1; // No exception
      cout << a.item_at_pos(0) << endl;
   }
   catch (const char * e) {
      cout << e << endl;
   }
   try {
      a[1] = 98; // Throws exception
      cout << a.item_at_pos(1) << endl;
   }
   catch (const char * e) {
      cout << e << endl;
   }
}

出力

1
This is not a binary digit

  1. C#の配列クラスとは何ですか?

    Arrayクラスは、C#のすべての配列の基本クラスです。これは、システム名前空間で定義されます。 Arrayクラスは、配列を操作するためのさまざまなプロパティとメソッドを提供します。 配列クラスのプロパティは次のとおりです- 次の表は、Arrayクラスの最も一般的に使用されるプロパティの一部を示しています。 Sr.No プロパティと説明 1 IsFixedSize 配列のサイズが固定されているかどうかを示す値を取得します。 2 IsReadOnly 配列が読み取り専用かどうかを示す値を取得します。 3 長さ 配列のすべての

  2. プロキシサーバーとは何ですか?

    毎日、人々はインターネットを閲覧するときにプライバシーを強化するためにプロキシサーバーを使用しています。しかし、プロキシサーバーとは何ですか?また、人々はそれをWebブラウジングでどのように使用しますか? プロキシサーバーとは何か、なぜ人々がプロキシサーバーを使用するのか、そしてどのように自分で使用できるのかを見てみましょう。 プロキシサーバーとは何ですか? プロキシサーバーは、仲介者として機能するための特別な種類のサーバーです。それはあなたとあなたが訪問したいウェブサイトの間に座って機能します。自分でWebサイトにアクセスする代わりに、プロキシサーバーに接続するように指示します。プロキシ