113. Operator Overloading-I

Question.5

A register builder class supports chained method calls:

class RegBuilder {
   uint32_t val = 0;
public:
   RegBuilder& set_bit(int n) {
       val |= (1U << n);
       return *this;
   }
   uint32_t build() { return val; }
};

uint32_t reg = RegBuilder()
   .set_bit(0).set_bit(3).set_bit(7).build();

Why does set_bit return RegBuilder&?

Need Help? Refer to the Quick Guide below

Select Answer