class A
{
public:
int _a;
};
class B
{
public:
int _b;
};
class C : public A, private B
{
public:
int _c;
};
C c;
c._c = 10;
c._a = 20;
B* b = (B*)(&c);
b->_b = 30;
Сосбственно вопрос: куда должен указывать указатель b?
У меня результат на VC7.1 был корректный. Но есть такое подозрение что он наплевал на private наследование, а судя по логике должен был
указывать на самое начало объекта, т.е. на a. И последняя строка как бы должна была изменить _а на 30.