Тема: Наследование. Полиморфизм

Тема: Классы

Задание:
1. Разобрать пример
2. Создать собственный класс (не менее 5 полей и 3 методов) с указанной темой, к-во файлов как в примере:
1) встроенная (inline) функция;
2) определение методов класса вне класса;
3) Открытые и закрытие методы класса;
4) оператор глобального разрешения;
5) конструктор;
6) Конструктор и параметры по умолчанию;
7) Перегрузка функций;
8) Деструктор.

Теория:
1. Инкапсуляция
2. Наследование
3. Полиморфизм

Контрольные вопросы:
1. Модификаторы доступа.
2.Объясните, что значит полиморфизм в терминах объектно-ориентированного
программирования.
3. Какая область видимости у поля класса по умолчанию.
4. Что такое (inline) функция?
5. Что такое перегрузка функций?
6. Виды конструкторов в С++
7. Что такое виртуальная функция?
8. В чем отличие ссылки от указателя?
9. Определение ООП и его основные концепции
10. В чем заключается работа оператора глобального разрешения (::) ?


 

Тема: Наследование. Полиморфизм

Задание:

1. Создать класс-наследник.

2. Показать множественное наследование.

3. Описать абстрактный базовый класс для создания иерархии, создать список объектов этих классов. Примечание: использование виртуальных функций, чисто виртуальных функций.

Контрольные вопросы:

1. Что такое наследование?

2. Что такое множественное наследование?

3. Друзья-классы, особенности.

4. Что такое полиморфизм?

5. Что такое виртуальная функция?

6. Что такое чисто виртуальная функция?

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

8. Что такое инкапсуляция?

 


 

Тема: Структуры, перечисления и объединения в C++. Строки

Задания:

1. Описать:

1) Структуру;

2) Перечисление;

3) Поле;

4) Объединение.

2. Опишите функции:

1) char *srtrstr (const char *s1, const char *s2)

2) char*strpbrk (const char *s1, const char *s2)

3) char *strncpy (char dst[], char src[], int len)

3. Напишите программу, которая принимает строку в качестве аргумента и читает ряд слов (последовательностей символов, разделенных пробелами) из стандартного ввода, распечатывая те из них, которые водят как подстроки в строку аргумента.

Контрольные вопросы:

1. Что такое структуры?

2. Что такое перечисления?

3. Что такое объединения

4. Что такое битовое поле?

5. Что такое строки?

6. Различие между строкой и массивом символов?

7. Операции над строковыми данными.

 

Операции над строковыми данными

Функция Выполняемое действие
Определение длины строки
strlen(CS) Возвращает количество символов в строке S
Формирование строк
strdup(CS) Запрашивает память, копирует туда содержимое CS и возвращает указатель типа char*на новую строку
strcpy(S1,CS2) Копирует содержимое CS2 в S1, возвращает указатель на S1
strncpy(S1,CS2,k) Копирует первые k символов из CS2 в S1, возвращает указатель на S1
stpcpy(S1,CS2) Копирует CS2 в S1, возвращает указатель на конец S1
strset(S,ch) Расписывает строку S символом ch, возвращает указатель на S1
strnset(S,ch,k) Повторяет k раз символ ch в строке S, возвращает указатель на S1
Конкатенация строк
strcat(S1,CS2) Приписывает содержимое CS2 в конец S1, возвращает указатель на S1 (длина массиваS1 должна предусматривать такое расширение)
strncat(S1,CS2,k) Присоединяет первые k символов CS2 к содержимому S1, возвращает указатель на S1
Смена регистра
strlwr(S) замена символов строки S кодами малых букв, действует только на буквы латинского алфавита
strupr(S) замена символов строки S кодами больших букв, действует только на буквы латинского алфавита
Переворот строки
strrev(S) Перестановка символов строки S в обратном порядке
Преобразование в числовые данные
strtol(CS,ptr,r) Число, представленное в символьном виде в CS и записанное в системе счисления с основанием r, преобразуется в машинный формат числа типа long. В указатель ptrзаносится адрес символа, прервавшего преобразования. Возвращаемое значение – результат преобразования.
strtoul(CS,ptr,r) Аналогичное преобразование в длинное целое число без знака
strtod(CS,ptr) Преобразование вещественного числа из символьного представления в машинный формат числа типа double.
Сравнение строк
strcmp(CS1,CS2) Возвращаемое значение равно 0, если CS1=CS2, больше 0, если CS1>CS2, и меньше 0, если CS1<CS2
strncmp(CS1,CS2,k) Сравниваются только первые k символов строк CS1 и CS2
stricmp(CS1,CS2) При сравнении игнорируется разница между кодами больших и малых букв
strcmpi(CS1,CS2) Аналогичная операция, разница только в названии функций
strnicmp(CS1,CS2,k) Сравнение первых k символов с игнорированием разницы между кодами больших и малых букв
strncmpi(CS1,CS2,k) Аналогичная операция, разница только в названии функций
Поиск символа
strchr(CS,ch) Строка CS сканируется слева направо до обнаружения символа ch. Если он найден, возвращаемый указатель "смотрит" на этот символ в строке CS, если такого символа нет, то возвращаемый указатель равен null (т.е. 0)
strrchr(CS,ch) Аналогичный поиск с конца строки CS.
Поиск строки
strstr(CS1,CS2) Поиск первого вхождения строки CS2 в строку CS1. Если поиск завершен успешно, возвращается указатель на первый символ найденной подстроки. В противном случае возвращается null
Специальный поиск
strpbrk(CS1,CS2) В строке CS1 ищется первый символ, содержащийся в CS2. Возвращается указатель на найденный символ или null.
strspn(CS1,CS2) Определяется длина начального фрагмента CS1, целиком состоящая из символов CS2(порядок символов роли не играет)
strcspn(CS1,CS2) Определяется длина начального фрагмента CS1, который не содержит ни одного символа из CS2
strtok(S1,CS2) Поиск в строке S1 лексем, разделенных символами CS2

 


 

Литература

http://programmersforum.ru/showthread.php?t=31602