Implicit conversion casting

#include <iostream>

class Distance {
public:
    Distance(int meters) : meters(meters) {}

    operator int() const {
        return meters;
    }

private:
    int meters;
};

int main() {
    Distance distance(1000);
    int convertedDistance = distance;

    std::cout << "Original distance in meters: " << distance << std::endl;
    std::cout << "Converted distance in meters: " << convertedDistance << std::endl;

    return 0;
}