【问题标题】:Returning value of variable inside a struct when the struct is rvalue of an assignment当结构是赋值的右值时,返回结构内变量的值
【发布时间】:2020-11-04 13:29:09
【问题描述】:

我有以下代码:

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; 不变?

【问题讨论】:

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


    【解决方案1】:

    添加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;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      相关资源
      最近更新 更多