0

我正在用 C++ 做一个非常小而简单的 Integer 类包装器,它的全局看起来像这样:

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 回答