GPIO Pin Operator Overload

#include <iostream>
using namespace std;

// Define enum class Level
enum class Level { LOW=0, HIGH=1};
// Define class GpioPin with operator= and operator int()
class GpioPin {
    private:
        Level lvl;
    public:
        GpioPin(Level level):lvl(level){};
        void operator=(Level next){
            lvl = next;
        }
        friend ostream& operator<<(ostream& os,const GpioPin& pin){
            os<<static_cast<unsigned int>(pin.lvl);
            return os;
        }
};
int main() {
    int init, next;
    cin >> init >> next;

    GpioPin pin(static_cast<Level>(init));

    pin = static_cast<Level>(next);

    cout << pin;

    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

0 1

Expected Output

1