#include <iostream>

class A
{
public:
    A(int x) : _value(x) {}

    operator int() const { return _value; }

private:
    int _value;
};

class B : public A
{
public:

    B(int y) : A(y) {}
};

int main()
{
    A a1(1);
    B b1(10);
    A a2(2);
    B b2(20);

    std::cout << a1 << '\n';
    std::cout << b1 << '\n';
    std::cout << a2 << '\n';
    std::cout << b2 << '\n';
}