当结构是赋值的右值时,返回结构内部变量的值

时间:2020-07-15 05:40:19

标签: c++ struct operator-overloading assignment-operator

我有以下代码:

{'A': {'ind1': '167724.1407', 'ind2': '151859.5908', 'ind3': '150131.7254'}, 
'B': {'ind1': '186216.5193', 'ind2': '170351.9694', 'ind3': '168624.1039'}}

class example { int x; inline void operator=(int value) { x = value; } }; int main() { example foo { 100 }; int bar = foo; } 显然不起作用,因为我正在尝试将类型为int bar = foo;的变量分配给类型为example的变量。

是否可以在不使用getter函数且不使用 int的情况下检索x变量?如果是这样,是否仍然可以仅通过该结构内部的代码并保持operator.不变?

1 个答案:

答案 0 :(得分:3)

添加一个conversion function以允许implicit conversion

struct example {
   int x;
   inline void operator=(int value) { x = value; }

   operator int() const
   {
       return x;
   }
};

int main() {
   example foo { 100 };
   int bar = foo;
}