SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Язык C++

                            Использование шаблонов
                                               templates




                                          Алексей Бованенко

пятница, 8 января 2010 г.
Создание шаблонной функции
                 •      template<typename T> bool testFunc(
                                                      const T& t1,
                                                      const T& t2)
                        {
                           if(t1>t2)
                              return true;
                           return false;	
                        }


пятница, 8 января 2010 г.
Результат использования функции




пятница, 8 января 2010 г.
Создание шаблонного класса
                 • template<typename      T> class TestContainer{
                        public:
                          TestContainer():count(0),arr(0){
                            arr=new T[10];
                          }
                          ~TestContainer(){
                            if(arr)
                                 delete[] arr;
                          }

пятница, 8 января 2010 г.
Создание шаблонного класса
                                                (продолжение)

                 •      void add(T e){
                           arr[count++]=e;
                        }
                        T get(int index){
                           return arr[index];
                        }
                        private:
                           int count;
                           T* arr;

пятница, 8 января 2010 г.
Результат




пятница, 8 января 2010 г.
Шаблонные параметры, не являющиеся
                                                         типами
                       template <typename T, int SIZE>
                            class TestClass{
                            public:
                                TestClass(){};
                                ~TestClass(void){};
                            private:
                                T arr[SIZE];
                            };


пятница, 8 января 2010 г.
Значения по умолчанию для целочисленных
                                                 шаблонных параметров
                       template <typename T, int SIZE=10>
                            class TestClass{
                            public:
                               TestClass(){};
                               ~TestClass(void){};
                            private:
                               T arr[SIZE];
                            };


пятница, 8 января 2010 г.
Использование шаблона
                       TestClass<int> tc;
                       TestClass<std::string, 100> tc1;




пятница, 8 января 2010 г.
Шаблоны методов
                       template <typename T, int SIZE=10>
                            class TestClass{
                            public:
                                 TestClass(){};
                                 ~TestClass(void){};
                                 template<typename E> size_t get(E& e)
                                 {
                                    return sizeof(e);
                                 };
                            private:
                                 T arr[SIZE];

пятница, 8 января 2010 г.
Пример использования
                           
   TestClass<int,10> t1;
                           
   std::string s="Helloo, world";
                           
   int sz=t1.get(s);
                           
   std::cout<<sz<<std::endl;




пятница, 8 января 2010 г.
Конец




                            Спасибо за внимание

                                     e-mail: a.bovanenko@gmail.com


пятница, 8 января 2010 г.

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (7)

Perl. Anonymous arrays, hashes, subroutines. Closures
Perl. Anonymous arrays, hashes, subroutines. ClosuresPerl. Anonymous arrays, hashes, subroutines. Closures
Perl. Anonymous arrays, hashes, subroutines. Closures
 
transaction. php
transaction. phptransaction. php
transaction. php
 
Java IO. Streams
Java IO. StreamsJava IO. Streams
Java IO. Streams
 
File. Java
File. JavaFile. Java
File. Java
 
PHP introduction
PHP introductionPHP introduction
PHP introduction
 
ZIP, GZIP Streams in java
ZIP, GZIP Streams in javaZIP, GZIP Streams in java
ZIP, GZIP Streams in java
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 

Mehr von Alexey Bovanenko

Mehr von Alexey Bovanenko (20)

Python sqlite3
Python sqlite3Python sqlite3
Python sqlite3
 
Python. re
Python. rePython. re
Python. re
 
python dict
python dictpython dict
python dict
 
Python. Строки
Python. СтрокиPython. Строки
Python. Строки
 
Python. Введение
Python. ВведениеPython. Введение
Python. Введение
 
Nio java
Nio javaNio java
Nio java
 
Конвертация строковых данных в числовые
Конвертация строковых данных в числовыеКонвертация строковых данных в числовые
Конвертация строковых данных в числовые
 
Assert c
Assert cAssert c
Assert c
 
Обработка символов в языке C
Обработка символов в языке CОбработка символов в языке C
Обработка символов в языке C
 
System c
System cSystem c
System c
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Javascript String object
Javascript String objectJavascript String object
Javascript String object
 
Конструктор копирования
Конструктор копированияКонструктор копирования
Конструктор копирования
 
cookie. support by php
cookie. support by phpcookie. support by php
cookie. support by php
 
php sessions
php sessionsphp sessions
php sessions
 
Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilder
 
Объект Logger
Объект LoggerОбъект Logger
Объект Logger
 
Drag And Drop Windows Forms
Drag And Drop Windows FormsDrag And Drop Windows Forms
Drag And Drop Windows Forms
 
enum. Java.
enum. Java.enum. Java.
enum. Java.
 
Files. Php.
Files. Php.Files. Php.
Files. Php.
 

Tempale Intro