Re[2]: Наследование, вызов конструктора базового класса
От: blacksun  
Дата: 11.06.11 19:54
Оценка:
Здравствуйте, 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 хочется не константой?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.