0

私はC++で非常に小さくてシンプルなIntegerクラスラッパーをやっています.globalは次のようになります:

class Int
{
  ...
private:
  int value;
  ...
}

考えられるほとんどすべての割り当てを処理しましたが、ネイティブの左割り当てを取得するために使用する必要がある演算子の種類がわかりません。

例えば:

Int myInteger(45);
int x = myInteger;
4

1 に答える 1

9

変換演算子を int に変換したい場合があります。

class Int
{
 public:
  operator int() const { return value; }
 ...
};

これにより、次の初期化が可能になります。int

int x = myInteger;

C++11 では、その変換を に制限するかint、または から別のものへのさらなる変換を許可するかを決定できintます。に制限するintには、explicit変換演算子を使用します。

explicit operator int() const { return value; }

ただし、この場合はおそらく必要ありません。

于 2013-06-09T17:31:48.380 に答える