What does this program print?

from Operator overloading
C++23 beginner 2 min

What does this program print?

C++
#include <iostream>

class Counter {
    int value_;

public:
    explicit Counter(int value) : value_(value) {}

    Counter& operator+=(int amount) {
        value_ += amount;
        return *this;
    }

    friend Counter operator+(Counter left, int right) {
        left += right;
        return left;
    }

    int value() const { return value_; }
};

int main() {
    Counter original{4};
    Counter result = original + 3;
    std::cout << original.value() << ' ' << result.value() << '\n';
}
Open in playground
Report an error