class B {
public:
    int value;
    B(int value) : value(value) {}
};

class A {
public:
    int value;
    A(int value) : value(value) {}
    
    operator B() {
        return B(value);
    }
};

B operator+(B lhs, B rhs) {
    return B(lhs.value + rhs.value);
}

int main() {

    A a(3);
    B b(4);

    B c = a + b;

    return 0;
}