Шаблоны.pptx
- Количество слайдов: 6
Шаблоны Тема 3
Шаблоны, которые иногда называют параметризованными типами, это механизмы для создания функций и классов, основанных на параметрах. // min for ints int min( int a, int b ) { return ( a < b ) ? a : b; } // min for longs long min( long a, long b ) { return ( a < b ) ? a : b; } // min for chars char min( char a, char b ) { return ( a < b ) ? a : b; } template <class T> T min( T a, T b ) { return ( a < b ) ? a : b; }
Шаблон класса template <class T> class A { T m_t; public: A(T t): m_t(t) {} void f(T t); }; int main() { A<int> a(10); }
Параметризация класса значением #include <iostream> using namespace std; template <int i> class A { int array[i]; public: A() { memset(array, 0, i*sizeof(int)); } }; int main() { A<10> a; }
Спецификации шаблона template < template-parameter-list > declaration parameter-declaration class identifier [ = typename ] typename identifier [ = typename ] template < template-parameter-list > class [identifier][= name]
template <class T, int i> class Test. Class { public: char buffer[i]; T test. Func(T* p 1 ); }; template <class T, int i> T Test. Class<T, i>: : test. Func(T* p 1) { return *(p 1++) }; // To create an instance of Test. Class<char, 5> Class. Inst; int main() { }
Шаблоны.pptx