1 struct X { 2 virtual int f() = 0; 3 }; 4 5 struct Y : X { 6 int f() override; 7 }; 8 f()9 int Y::f() { 10 return 99; 11 } 12 fun(X & x)13 int fun(X& x) { 14 return x.f(); 15 } 16 foo()17 int foo() { 18 Y y; 19 return fun(y) + sizeof(X); 20 } 21