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

Returning value of variable inside a struct when the struct is rvalue of an assignment

我有以下代码:

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

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

int bar = foo; 显然不起作用,因为我试图将 example 类型的变量分配给 int.

类型的变量

是否可以在不使用 getter 函数且不使用 operator. 的情况下检索 x 变量 ?如果是这样,是否仍然可以纯粹通过结构内的代码来完成,并保持 int bar = foo; 不变?

添加一个conversion function to allow 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;
}