4. Создание шаблонного класса
• template<typename T> class TestContainer{
public:
TestContainer():count(0),arr(0){
arr=new T[10];
}
~TestContainer(){
if(arr)
delete[] arr;
}
пятница, 8 января 2010 г.
5. Создание шаблонного класса
(продолжение)
• void add(T e){
arr[count++]=e;
}
T get(int index){
return arr[index];
}
private:
int count;
T* arr;
пятница, 8 января 2010 г.
7. Шаблонные параметры, не являющиеся
типами
template <typename T, int SIZE>
class TestClass{
public:
TestClass(){};
~TestClass(void){};
private:
T arr[SIZE];
};
пятница, 8 января 2010 г.
8. Значения по умолчанию для целочисленных
шаблонных параметров
template <typename T, int SIZE=10>
class TestClass{
public:
TestClass(){};
~TestClass(void){};
private:
T arr[SIZE];
};
пятница, 8 января 2010 г.
9. Использование шаблона
TestClass<int> tc;
TestClass<std::string, 100> tc1;
пятница, 8 января 2010 г.
10. Шаблоны методов
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 г.
11. Пример использования
TestClass<int,10> t1;
std::string s="Helloo, world";
int sz=t1.get(s);
std::cout<<sz<<std::endl;
пятница, 8 января 2010 г.
12. Конец
Спасибо за внимание
e-mail: a.bovanenko@gmail.com
пятница, 8 января 2010 г.