非常に奇妙な問題に遭遇しました。これの理由を知っている人はいますか? コードは Visual Studio 2012 でテストされています。
#include <iostream>
struct A {
int a;
};
struct B {
int b;
};
struct C : public A, public B {
int c;
};
int main() {
int C::*p = &C::b;
std::printf("%p\n", &C::b); //00000000
std::printf("%p\n", p); //00000004
return 0;
}