#include <iostream>

struct B
{
    int x;
    virtual ~B(){}
};

struct C
{
    C()
    {
        dynamic_cast<B &>(*this).x = 7;
    }
    virtual ~C(){}
};
struct A : virtual B, virtual C
{
    A() : B(), C()
    {
        std::cout << B::x << std::endl;
    }
    virtual ~A(){}
};

int main()
{
    A a;
}
