Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
romambrb
Сообщений: n/a
#1

шаблоны в си++ - C++

23.01.2011, 21:57. Просмотров 1159. Ответов 2
Метки нет (Все метки)

кто может сказать где прблема?

List.h
#ifndef LIST_H
#define LIST_H

#include<iostream>
#include<ostream>
#include<istream>
#include<ostream>
#include<string>
#include<fstream>
#include<list>

using namespace std;


template <class TData>
class List
{
class Node
{
public:
TData d;
Node *next, *prev;
Node(TData dat = NULL){d = dat; next = NULL; prev = NULL;}
};//end class Node
Node *pbeg, *pend;
public:

List(){pbeg = NULL; pend = NULL;}
~List();
void add(TData d);
Node * find(TData d);
Node * insert(TData key, TData d);
bool remove(TData key);
void print();
void print_back();
};//end class List

#endif //LIST_H

List.cpp
#include"list.h"



template <class TData> List <TData>::~List()
{
if (pbeg !=0)
{
Node *pv = pbeg;
while (pv)
{
pv = pv->next;
delete pbeg;
pbeg = pv;
}
}
}
//-------------------------
template <class TData> void List <TData>:rint()
{
Node *pv = pbeg;
cout << endl << "list: ";
while (pv)
{
cout << pv->d << ' ';
pv = pv->next;
}
cout << endl;
}
//-------------------------
template <class TData> void List <TData>:rint_back()
{
Node *pv = pend;
cout << endl << " list back: ";
while (pv)
{
cout << pv->d << ' ';
pv = pv->prev;
}
cout << endl;
}

//-------------------------
template <class TData> void List <TData>::add(TData d)
{
Node *pv = new Node(d);
if (pbeg == NULL)
pbeg = pend = pv;
else
{
pv->prev = pend;
pend->next = pv;
pend = pv;
}
}
//-------------------------

template <class TData> Node * List <TData>::find( TData d)
{
Node *pv = pbeg;
while (pv)
{
if(pv->d == d)break;
pv = pv->next;
}
return pv;
}

//-------------------------

template <class TData> Node * List <TData>::insert(TData key, TData d)
{
if(Node *pkey = find(key))
{
Node *pv = new Node(d);
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if( pkey != pend)(pv->next)->prev = pv;
else pend = pv;
return pv;
}
return 0;
}

//-------------------------
template <class TData> bool List <TData>::remove(TData key)
{
if(Node *pkey = find(key))
{
if (pkey == pbeg)
{
pbeg = pbeg->next; pbeg->prev = 0;
}
else if (pkey == pend)
{
pend = pend->prev; pend->next = 0;
}
else
{
(pkey->prev)->next = pkey->next;
(pkey->next)->prev = pkey->prev;
}
delete pkey; return true;
}
return false;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2011, 21:57     шаблоны в си++
Посмотрите здесь:

Шаблоны - C++
Выполнить задание без использования библиотеки стандартных шаблонов. а) Создать шаблонную функцию поиска по заданному ключу. Функция...

Шаблоны С++ - C++
Существует ли ограничение типа параметра шаблона в C++? То, что нельзя использовать шаблоны функций в качестве параметров шаблонов, это...

Шаблоны в C++ - C++
Доброго времени суток! Начал разбираться что такое шаблон и с чем его едят. Загуглил, вставил код из википедии. Ошибка. ...

шаблоны - C++
Помогите пож. разобраться с шаблонами. Шаблоны у которых параметры тоже шаблоны. из книги: tamplate&lt;typenamy T&gt;class Thing здесь...

Шаблоны - C++
Здравствуйте. Читая про шаблоны в Википедии (https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B) ...

Шаблоны C++11 - C++
#include &lt;iostream&gt; template&lt;typename T1, typename T2&gt; auto func(T1 a, T2 b) -&gt; decltype(a&gt;b?b:a) { return a&gt;b?b:a; ...

Шаблоны - C++
ругается на строку &quot;friend class List&lt;T&gt;;&quot;, вот что пишет: 1&gt;c:\users\slava\documents\visual studio...

Шаблоны - C++
В файле есть такое определение template&lt;int32 aMaxLength&gt; class TTextBuffer: public MString { public: /** Construct an empty...

Шаблоны - C++
// Шаблоны.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace...

Шаблоны - C++
Добрый день. Не могли бы объяснить вот этот вопрос: Допускают ли шаблоны вложенность описания?

шаблоны - C++
помогите с задачей пожалуйста нужно описать шаблон класса для хранения последовательности пар ключ - значение, написать функцию ...

Шаблоны - C++
Здравствуйте не объясните новичку пару аспектов про шаблоны 1)Зачем они нужны 2)Преимущества 3)Синтаксис 4)Маленький примерчик


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
23.01.2011, 22:04     шаблоны в си++ #2
Проблема в том, что пока вы не оформите код в теги форматирования, смотреть его никто не будет.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,365
23.01.2011, 22:05     шаблоны в си++ #3
А что за проблема-то?

<телепатия вкл.>
Уверен, что как только ты сольешь два файла в один (а именно, в *.h, который должен содержать как объявление, так и реализацию шаблонного класса, *.cpp не нужен вообще), твоя "проблема" испарится.
</телепатия вкл.>
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru