class A {
public: virtual void Foo() {};
};
class B {
public: virtual void Foo() {};
};
class C : virtual public A, B {
public: virtual void Foo() {};
};
void foo() {}
#include <stdio.h>
int main()
{
printf("::foo [%d]\n", sizeof(&foo));
printf("A::foo [%d]\n", sizeof(&A::Foo));
printf("C::foo [%d]\n", sizeof(&C::Foo));
}
Y2xhc3MgQSB7CnB1YmxpYzogdmlydHVhbCB2b2lkIEZvbygpIHt9Owp9OwpjbGFzcyBCIHsKcHVibGljOiB2aXJ0dWFsIHZvaWQgRm9vKCkge307Cn07CmNsYXNzIEMgOiB2aXJ0dWFsIHB1YmxpYyBBLCBCIHsKcHVibGljOiB2aXJ0dWFsIHZvaWQgRm9vKCkge307Cn07CnZvaWQgZm9vKCkge30KI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluKCkKewpwcmludGYoIjo6Zm9vIFslZF1cbiIsIHNpemVvZigmZm9vKSk7CnByaW50ZigiQTo6Zm9vIFslZF1cbiIsIHNpemVvZigmQTo6Rm9vKSk7CnByaW50ZigiQzo6Zm9vIFslZF1cbiIsIHNpemVvZigmQzo6Rm9vKSk7Cn0=