Здравствуйте, blacksun, Вы писали:
B>B()
B>{
B> m_x = 555;
B> A(777); // <--- Что происходит здесь? Почему не изменяется A::m_x, а изменятся какой-то другой m_x с другим адресом
B> //A::m_x = 888; // Здесь все ок
B>}
Потому что это не вызов конструктора, а создание безымянного объекта типа А. Чтоб вызывался конструктор, нужно проинициализировать базовую часть:
B() : A(777)
{
...
}