С++. Шаблоны Сидоренко Иван. Введение Шаблоны обеспечивают поддержку обощенного программирования. Пример: template class Temp { T val; public: Temp( T);

Презентация:



Advertisements
Похожие презентации
Функции с переменным числом аргументов private static int Sum(int a, int b) { return a + b; } static void Main() { int sum = Sum(1, 2); } 1 Функции.
Advertisements

А в а а а в в в S1S1 S3S3 S2S2 S4S4 S кв = (а + в) 2 S 2 = а 2 S 3 = в 2 S 1 = S 4 = S пр S кв = S 1 + S 2 + S 3 + S 4 (а + в) 2 = а 2 + в S пр а.
1 A + B Операнд 1Операнд 2 Оператор Что такое выражение (expression) ? Что такое инструкция (statement) ? Операторы int max = (a > b) ? a : b;
Бибиков Д.Н. S. α S S4S4 Q + S1S1 S2S2 S3S3 SnSn.
C++ templates. Синтаксис template void f(const T& value) { std::cout << "Value is: " << value << std::endl; } template struct Array { T data[n]; };
Объектно-ориентированное программирование С++. Лекция 8 Карпов В.Э.
Лекция 11. Введение в ООП. Часть 4 Красс Александр СПбГУ ИТМО, 2008.
Лекция 9. Введение в ООП. Часть 2 Красс Александр СПбГУ ИТМО, 2008.
Шаблоны в С++ Макаревич Л. Г.. Шаблоны функций Многие алгоритмы не зависят от типов данных. Многие алгоритмы не зависят от типов данных. #include using.
Лекция 22. Шаблоны (часть 2) Красс Александр СПбГУ ИТМО, 2008.
Лекция 8. Введение в ООП. Часть 1 Красс Александр СПбГУ ИТМО, 2008.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Лекция 13. Введение в ООП. Часть 4 Красс Александр СПбГУ ИТМО, 2008.
1 Переопределение операций Макаревич Л. Г.. 2 Зачем нужна перегрузка операций? class Complex { double re; double im; public: Complex(double r=0, double.
Статические поля класса Статические поля хранят данные, общие для всех элементов класса. Статическое поле существует в единственном экземпляре для всех.
Лекция 10. Введение в ООП. Часть 3 Красс Александр СПбГУ ИТМО, 2008.
2. Классы.Полиморфизм.. Перегрузка функций void f(); void f(int value); void f(doublevalue); void f(int value, int nextValue); … f(); f(12); f(12.0);
Язык C++ Лекция 2. Недостатки enumов Засорение namespaceа, в котором находится enum Соответственно, члены enumа должны иметь уникальный префикс.
Лекция 6 Функции. Объявления и определения Объявление функции – указание имени функции, а также входных и выходных параметров Определение функции – указание.
Лекция 4. Введение в С++ Наследование, множественное наследование. Конструкторы, деструкторы. Виртуальные функции.
Транксрипт:

С++. Шаблоны Сидоренко Иван

Введение Шаблоны обеспечивают поддержку обощенного программирования. Пример: template class Temp { T val; public: Temp( T); T getVal() const; } Temp it; class A {}; Temp at; template T Temp ::getVal() const { return val; } void f() { Temp it; Temp at; }

Параметры шаблонов Параметр – константа или тип. Пример: template class Buffer { T v[max]; public: Buffer(); }; void f( int i) { Buffer buf; // ошибка }

Эквивалентность типов При использовании одного и того же набора аргументов шаблона, мы всегда получаем один и тот же тип. typedef char myChar; string s1; string s2; string s3; string s4; buffer b1; buffer b2;

Шаблоны функций Пример: template void f( T var) {…} Перегрузка шаблонов функций template T func(T, T); template complex func( complex, T); double func( double, double); func(1.2, 1); // ошибка, неоднозначность