Язык С++
Язык С++
Язык С++
Язык С++
Язык С++
T pop Язык С++
{
return stk[--size];
}
};
Использование
stack
stack
stack
stack
При использовании параметры надо указывать явно
Язык С++
Параметры по умолчанию
template Язык С++
stack
И мы пишем шаблон, в котором используем это. Язык С++
template
void f(T x)
{
…
T::mytype x;
…
}
Проблема: Откуда компилятор знает, что T::mytype это тип (а не поле T или метод T и т.д.)?
Приходится подсказывать..
Язык С++
Язык С++
template Язык С++
class abc
template
class abc
template
class abc
Не во всех компиляторах! (Visual C++ после VS 2003)
template Язык С++
complex(const T1& from) :
re(from.re), im(from.im)
{}
};
// Хотим задать преобразование
// complex -> complex
complex
complex
Генерируется конструктор
complex
(const complex
Язык С++
Язык С++
Язык С++
Язык С++
Как определить что-то в одном файле, а использовать в другом?
a.cpp
void f(int i)
{
…
}
b.cpp
… f(56); …
// f надо объявить
Почему?
Неудобно, особенно если файлов много
При изменениях надо много где исправлять
Легко забыть исправить.
с.cpp
#include “a.h”
...
… f(42); …
В a.h – все, что другие должны знать о a.cpp (все необходимые объявления)
Опишите шаблон функции, которая для любого последовательного контейнера (списка, вектора, deque) ищет сумму входящих в него положительных элементов.
Замечание: шаблон должен работать не только для контейнеров из целых чисел, но и для вещественных, rational и т.д.
(Продолжение на следующем слайде)
Язык С++
Надо только переставлять
указатели, подсчитывать их
количество, и удалять строки, на
которые уже никто не указывает.
За эту задачу тоже можно
заработать два балла. Один
балл для тех, кто напишет что-то
похожее на правильное решение,
и второй балл за совсем правильное
решение.
(Окончание на следующем слайде)
Язык С++
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть