static int g_next_value = 12345;
struct VBase {
VBase() : m_value(g_next_value++) {}
virtual ~VBase() {}
int m_value;
};
struct Derived1 : public virtual VBase {
};
struct Derived2 : public virtual VBase {
};
struct Joiner1 : public Derived1, public Derived2 {
long x = 1;
};
struct Joiner2 : public Derived2 {
long y = 2;
};
int main(int argc, const char *argv[]) {
Joiner1 j1;
Joiner2 j2;
Derived2 *d = &j1;
d = &j2; // breakpoint 1
return 0; // breakpoint 2
}