![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Rocket |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Создал два класса: базовый Base и производный от него Derived.
Сначала нужно в функции main описать неинициализированный объект класса Derived и откомпилировать программу, а потом описать инициализированный объект класса Derived. Соответствующие конструкторы я правильно реализовал? Объясните пожайлуста результаты вывода размеров типов Base и Derived, это связано с выравниванием на длину машинного слова? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Соответствующие конструкторы я правильно реализовал? Нет, программа компилироваться не будет... Из конструктора Derived частные члены Base недоступны (у тебя есть попытка обратиться к частному d), только общие и защищенные...Да и вообще, не надо инициализировать поля предка из потомка, для этого у предка есть конструкторы: Derived(int I, long L, double D, float F): Base(I, L, D) Цитата это связано с выравниванием на длину машинного слова? Да... Отмени выравнивание, получишь размер Derived = 20, как и ожидаешь:#pragma pack(1) Сообщение отредактировано: volvo - 23.03.2008 13:55 |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 9:35 |