首页 > 解决方案 > 当结构是赋值的右值时,返回结构内变量的值

问题描述

我有以下代码:

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

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

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

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

标签: c++structoperator-overloadingassignment-operator

解决方案


添加转换函数以允许隐式转换

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

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

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

推荐阅读