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