Главная » Просмотр файлов » Вопросы к ЛР ответы

Вопросы к ЛР ответы (1077229), страница 2

Файл №1077229 Вопросы к ЛР ответы (Вопросы по ЛР с ответами) 2 страницаВопросы к ЛР ответы (1077229) страница 22018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Значения переменных и их адресов можно просматривать в течение выполнения всей программы.

18. Array потомок класса Collection, не является абстрактным.

19. Array является дочерним

20. Collection – косвенный базовый класс для Array.

Контрольные вопросы к ЛР №3

  1. Поясните структуру классов для LIST по диаграмме классов?

  2. Какие данные и методы определены в этом классе?

  3. Для чего используется класс LISTITERATOR? Его методы?

  4. Поясните структуру объектов для программы по диаграмме объектов? Какие объекты являются временными, и какие сохраняются в программе все время ее работы?

  5. Что такое наследование классов? Поясните на примере MyObj?

  6. Для чего нужен класс Object в системе классов BC 3.1?

  7. Что такое абстрактный класс?

  8. Какие преимущества появляются у программиста при использовании проектов в BC++?

  9. Какие классы являются дружественными классу LIST, классу ListElement? Покажите эти отношения на диаграмме классов.

  10. В каком отношении находятся классы LIST и ListElement?

  11. Почему нужно перегружать стандартные виртуальные функции класса Object?

  12. Для чего может быть использован метод – findPred класса LIST? Можно ли его использовать в программе, в порожденном классе? Если нет, то почему?

  13. Как должен быть описан класс наследник от Object( MyObj)?

  14. Назначение и использование метода detach, flush? Чем ониотличаются?

  15. Назначение и использование методов int, restart и current?

  16. Поясните запись – “ListIterator LBI((List)LB);”?

  17. Поясните записи – “int(LBI)” и “LBI++”?

  18. Что нужно для просмотра классов программы? Как ее распечатать?

  19. Для чего нужен класс ListElement и где можно найти его описание?

  20. Можно ли создавать объекты класса ListElement вне методов класса LIST?

  21. Можно ли по текущему элементу списка определить следующий или предыдущий объект списка?

  22. Какие чистые виртуальные функции переопределены в класса LIST?

  23. Какие чистые виртуальные функции переопределены в класса LISTITERATOR?

  24. Можно ли удалить элемент в списке по номеру?

  25. Почему новые объекты могут быть добавлены только в начало списка? Пояснить по распечатке метода add в исходном модуле.

  26. Можно ли использовать для объектов класса LIST методы printHeader, printSeparator и printTrailer из класса родителя Container класса LIST? И как?

1.

2. class _CLASSTYPE List : public Collection, private ListBlockInitializer

{

public:

List();

virtual ~List() {flush();}

Object _FAR & peekHead() const {return ptrToRef(head->next->data);}

void add( Object _FAR & );

virtual void detach( Object _FAR &, DeleteType = NoDelete );

virtual void flush( DeleteType = DefDelete );

virtual int isEmpty() const;

virtual countType getItemsInContainer() const;

virtual ContainerIterator _FAR & initIterator() const;

virtual classType isA() const;

virtual char _FAR *nameOf() const;

private:

class _CLASSTYPE ListElement{}

ListElement _FAR *head;

ListElement _FAR *tail;

ListElement headEntry, tailEntry;

unsigned itemsInContainer;

ListElement _FAR *findPred( const Object _FAR & o );

friend class ListIterator;

friend class ListBlockInitializer;

};

3. ListIterator – класс итераторов для списка, является производным классом от ContainerIterator. (Итератор позволяет перебирать элементы списка)

ListIterator( const List _FAR & );

virtual ~ListIterator();

virtual operator int();

virtual Object _FAR & current();

virtual Object _FAR & operator ++ ( int );

virtual Object _FAR & operator ++ ();

virtual void restart();

4.

5. Насле́дование — один из механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

В нашем случае: MyObj имеет все методы класса Object (некоторые из которых перегружены), а также собственные, не относящиеся к Object, методы и данные

6. Является базовым классом для большинства классов библиотеки BC 3.1. (находится вершине иерархии классов).

7. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод (идентификатор: …=0), он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного.

8.

9. class _CLASSTYPE List:

friend class ListIterator;

friend class ListBlockInitializer;

class _CLASSTYPE ListElement:

friend class List;

friend class ListIterator;

friend class ListBlockInitializer;

10. ListElement – локальный класс, определен внутри класса List. Отношение включения:

ListElement _FAR *head;

ListElement _FAR *tail;

ListElement headEntry, tailEntry;

11. Потому как они являются чисто виртуальными – то есть не имеют тела. Если мы хотим создавать объекты класса, производного от Object, все такие методы должны быть перегружены – класс будет не виртуальным.

12. При удалении элемента из списка, методом detach(), находят элемент, находящийся перед удаляемым. Не может, так как является закрытым (private).

13. Если мы хотим создавать объекты от полученного класса, должны перегрузить все чисто виртуальные методы класса Object.

14. virtual void detach( Object _FAR &, DeleteType = NoDelete );

удаляет ссылку на объект из списка

virtual void flush( DeleteType = DefDelete ); - очищает весь список.

15. virtual operator int(); - оператор явного или неявного приведения к целочисленному типу (не 0 – если текущий элемент не равен следующему за ним.)

virtual Object _FAR & current(); - возвоащает ссылку на текущий элемент списка.

virtual void restart(); - перемещает итератор в начало списка (текущая позиция итератора = стартовой)

16. “ListIterator LBI((List)LB);” – создать итератор для списка (экземпляр класса ListIterator) на основе списка LB.

17. “int(LBI)” – преобразовать итератор к целочисленному типу

LBI++” – увелечить значение итератора на 1 – перейти к следующему элементу списка, если он есть.

18.

19. ListElement – класс, описывающий элемент списка, содержащего какие-то данные и указатель – указатель на следующий элемент списка. Описан внутри класса List (List.h)

20. Нет, нельзя, так как описан в секции private – является недоступным внешним функциям.

21. С помощью итераторов:

- в списке List: следующий

- в списке DobleList: следующий и предыдущий

22. add, detach, flush, isA, nameOf, initIterator.

virtual classType isA() const = 0;

virtual char _FAR *nameOf() const = 0;

virtual void flush( DeleteType = DefDelete ) = 0;

virtual ContainerIterator _FAR & initIterator() const = 0;

virtual void add( Object _FAR & ) = 0;

virtual void detach( Object _FAR &, DeleteType = NoDelete ) = 0;

23. // ContainerIterator:

virtual operator int() = 0;

virtual Object _FAR & current() = 0;

virtual Object _FAR & operator ++ ( int ) = 0;

virtual Object _FAR & operator ++ () = 0;

virtual void restart() = 0;

24. Нет, detach удаляет объект из списка по значению.

25. Потому как метод add добавляет объект в начало списка.

void List::add( Object& toAdd )

{

ListElement *newElement = new ListElement( &toAdd, head->next );

CHECK( newElement != 0 );

head->next = newElement;

itemsInContainer++;

}

  1. Да, можно.

void MyList::PrintList( ostream& outputStream ) const

{

// contain.cpp

ContainerIterator& print_Iterator = initIterator();

printHeader( outputStream );

while( print_Iterator != 0 )

{

print_Iterator++.printOn( outputStream );

if ( print_Iterator != 0 )

printSeparator( outputStream );

else

break;

}

printTrailer( outputStream );

delete &print_Iterator;

}

  1. Контрольные вопросы к ЛР №4

  1. Поясните структуру классов программы по диаграмме классов?

  2. Поясните структуру объектов программы по диаграмме объектов?

  3. Что такое абстрактный класс? Пример.

  4. Почему нельзя создавать объекты абстрактных классов?

  5. Что такое перегрузка функций С++?

  6. Что такое перегрузка операций в С++?

  7. Что такое виртуальная функция ( ВФ)? Чистая ВФ? Пример по программе.

  8. Что такое виртуальный вызов? Его преимущество?

  9. Поясните записи – “pAbs ->print();” и “d2.print();”?

  10. Поясните запись – “(( Abstr *) &LAI.current())->print();”?

  11. Что такое виртуальный вызов? Покажите в программе.

  12. Зачем для виртуального вызова нужен указатель на базовый класс?

  13. В чем преимущества виртуального вызова для разработчиков программ?

  14. Для чего нужен файл *.DEF в проекте?

  15. Как обеспечить совместное использование программ С и С++?

  16. Что такое виртуальный класс?

  17. Что такое виртуальный деструктор? Как их можно использовать?

  18. Чем отличается статическое и динамическое связывание?

  19. В чем состоят преимущества динамического связывания, и как они могут использоваться в программах?

Контрольные вопросы к ЛР №5

  1. Поясните понятие перегрузки функций?

  2. Поясните понятие перегрузки операций?

  3. Поясните назначение шаблонов функций?

  4. Поясните понятие параметров функций по умолчанию?

  5. Приоритет параметров по умолчанию имеет описание или прототип функции?

  6. Какие виды перегрузки операций Вы знаете?

  7. В чем особенность внешней перегрузки?

  8. В чем особенность внутренней перегрузки?

  9. В чем особенность перегрузки одноместной операции?

  10. Какие операции С++ нельзя перегрузить?

  11. Почему нельзя сделать внутреннюю перегрузку вывода в cout?

  12. Можно ли перегрузить трехместную операцию для своего класса?

  13. В чем особенность перегрузки двухместной операции?

  14. Какие меры нужно предпринять, чтобы при двуместной внутренней перегрузке значение базовой переменной было сохранено?

  15. В каких случаях можно передавать переменную через стек, а каких посредством указателя?

  16. Каково назначение перегрузки функций с точки зрения программиста?

  17. Каково назначение перегрузки операций с точки зрения программиста?

  18. Какие ограничения перегрузки операций Вы знаете?

  19. Какие операции перегружены в классах потокового ввода-вывода?

  20. Какие операции перегружены в классах LISTITERATOR и ARRAYITERATOR?

Характеристики

Тип файла
Документ
Размер
137,5 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее