#include <iostream>
class Bar
{
size_t len_;
public:
Bar(size_t len) : len_(len) {std::cout << len << '\n';}
};
class Foo : virtual public Bar //virtual inheritance
{
size_t foo_bigger_than_bar;
public:
Foo() : Bar(sizeof(Foo)) { }
};
class Derived2: public Foo
{
size_t derived2_bigger_than_foo;
public:
Derived2() : Bar(sizeof(Derived2)), Foo() { }
};
int main() {
Foo f;
std::cout << '\n';
Derived2 d;
}