- •Теоретические вопросы к экзамену к экзамену по курсу «Программирование и алгоритмизация»
- •А)Основные типы переменных в с. Б)Правила определения переменных и типов. В)Инициализация данных.
- •A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных
- •Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода
- •Оператор цикла for
- •Операторы цикла while и do … while
- •Указатели. Типизированные и нетипизированные.
- •Работа с файлами. Файловая переменная, открытие, закрытие файла.
- •Чтение и запись в файлы. Функция eof()
- •Определение и вызов функций. Фактические и формальные параметры.
- •Определение и вызов функций. Передача массивов и указателей на функции.
- •Бинарный поиск в упорядоченном массиве.
- •Сортировка массива на примере одного из алгоритмов.
- •Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- •Вставка узла
- •Удаление узла
- •Виды линейных списков: стек, очередь, дек.
- •Сущность методологии объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
- •Дружественные функции класса.
- •Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
- •Наследование. Определение базового и производного классов.
- •Полиморфизм. Виртуальные функции.
- •Динамическое распределение памяти под объекты. Операторы new и delete. Динамическое выделение памяти
- •Функции operator new() и operator delete()
- •Шаблоны классов. Шаблоны классов
- •Использование шаблонов
- •Шаблоны функций.
- •Жизненный цикл программного продукта.
- •Основные процессы жизненного цикла.
- •Разновидности процесса разработки по.
- •Стадии разработки по
- •Действия при разработке тз
Шаблоны классов. Шаблоны классов
В классе, реализующем связный список целых чисел, алгоритмы добавления нового элемента списка, поиска нужного элемента не зависят от того, что элементы списка — целые числа. Те же алгоритмы применялись бы и для списка символов, строк, дат, классов игроков, и так далее.
template< class T >
class List
{
/* ... */
public:
void Add( const T& Element );
bool Find( const T& Element );
/* ... */
};
Использование шаблонов
Для использования шаблона класса, необходимо указать его параметры:
List<int> li;
List<string> ls;
li.Add( 17 );
ls.Add( "Hello!" );
Шаблоны функций.
Шаблоны C++
[править]
Материал из Википедии — свободной энциклопедии
У этого термина существуют и другие значения, см. Шаблон.
Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).
В C++ возможно создание шаблонов функций и классов.
Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем). Например, нам нужен какой-то класс:
class SomeClass{
int SomeValue;
int SomeArray[20];
...
}
Для одной конкретной цели мы можем использовать этот класс. Но, вдруг, цель немного изменилась, и нужен еще один класс. Теперь нужно 30 элементов массива SomeArray и вещественный тип SomeValue и элементов SomeArray. Тогда мы можем абстрагироваться от конкретных типов и использовать шаблоны с параметрами. Синтаксис: в начале перед объявлением класса напишем слово templateи укажем параметры в угловых скобках. В нашем примере:
template < int ArrayLength, typename SomeValueType > class SomeClass{
SomeValueType SomeValue;
SomeValueType SomeArray[ ArrayLength ];
...
}
Тогда для первой модели пишем:
SomeClass < 20, int > SomeVariable;
для второй:
SomeClass < 30, double > SomeVariable2;
Хотя шаблоны предоставляют краткую форму записи участка кода, на самом деле их использование не сокращает исполнимый код, так как для каждого набора параметров компилятор создаёт отдельный экземпляр функции или класса.
Понятие потока в языке C++. Стандартные потоки.
Поток (srteam) – абстрактный канал связи, создаваемый в программе для обмена данными.
В зависимости от реализуемого направления передачи данных потоки делят на три группы:
· входные, из которых читается информация;
· выходные, в которые вводятся данные;
· двунаправленные, допускающие как чтение, так и запись.
Потоки, связанные с консольным вводом/выводом (клавиатура/экран), называются
стандартными. Стандартному потоку ввода соответствует класс 1 stream,
стандартному потоку вывода ~ класс ostream. Оба класса являются производными
от класса 1os. Следующим в piepapxnn является класс 1 ostream, наследующий
классы 1 stream и ostream и обеспечивающий общие средства потокового
ввода/вывода.