多重継承を持つクラスからデータ メンバーへのポインターを取得する方法があるかどうかを確認しようとしています。それらを明確にして正しいオフセットを取得する方法はありますか?
struct Foo
{
int BarData;
};
struct FooBarBaseA : public Foo
{
int DataA;
};
struct FooBarBaseB : public Foo
{
int DataB;
};
struct FooBar : public FooBarBaseA, public FooBarBaseB
{
};
Bar FooBar::* p1 = &FooBar::FooBarNodeA::BarData; // should be 0?
Bar FooBar::* p2 = &FooBar::FooBarNodeB::BarData; // should be 4 or 8?
編集:私はそれらを2つの独立した値にしたいのですが、両方
int FooBar::FooBarBaseA::Foo:: *p1 = &FooBar::FooBarBaseA::Foo::BarData; and
int FooBar::FooBarBaseB::Foo:: *p2 = &FooBar::FooBarBaseB::Foo::BarData;
継承ツリーが仮想でない場合、同じ値が得られますが、異なるオフセットであってはなりませんか?