0

実行できる方法で = 演算子をオーバーロードするにはどうすればよいですか

int someInt;
MyClass instanceOfMyClass;
someInt = instanceOfMyClass;

MyClass には number という名前の整数が含まれていますか?

4

2 に答える 2

2

operator=typeの をオーバーロードすることはできませんint。あなたが本当に探しているのは、operator int()あなたのMyClass. あなたの場合、xあなたのクラスのプライベートメンバーであることを考慮してください:

operator int() { return x; }
于 2013-03-29T05:43:55.233 に答える
0

正確に何が起こっているかを伝えるのが難しい場合があるため、ほとんどの場合、これを行うことは避けます。それは言った:

class MyClass {
 public:
  operator int() { return number; }

 private:
  int number;
};

これにより、クラスの (暗黙の) 変換演算子が作成されます。

于 2013-03-29T05:24:12.753 に答える