Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблонный класс массив 
:(
    Опции темы
papam
Дата 19.4.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

Репутация: 1
Всего: 4



Скажите,двусвязный список правильно написал?
Помогите исправит ошибку:
Ошибку выдает:
error C2440: 'initializing' : cannot convert from 'int' to 'struct Elem *'
Код

#include <iostream.h>

template<typename T>
struct Elem
{
    T data;T pos;
    Elem *next,*prev;
};
template<typename T>
class Array
{
    Elem<T> *Head,*Tail;
    int Size;
    public:
        Array();
    
        int GetSize();
        Array &operator =(const Array &);
        Array:: GetElem(int pos);
Array::Search(char value);
Remove(Elem *del);
Insert(Elem *before, char value);
};
template<typename T>
Array<T>::Array()
{
    Head=Tail=0;
    Size=0;
}

template<typename T>
int Array<T>::GetSize()
{
    return Size;
}
template <typename T>
Array<T>::GetElem(int pos)
{
    
    Elem<T> *temp = Head;
    if(pos <1 || pos > Size)
   {
      cout <<" VASH ELEMENT \n";
    }
   
   int i = 1;
   while(i < pos && temp != 0)
   {
      temp = temp->next;
      i++;
   }

}
template <typename T>
Array<T>::Remove(Elem<T> *del)       
{
  Element<T> *cur = Head;
  while (cur->Next != del)
    cur = cur->Next;
  if (cur->Next == del) {
    cur->Next = del->Next;
    delete del;
    Count--;
  }                                   
}
template <typename T>
Array<T>::Search(char value)
{
  Element *curr = Head;
  if (curr == NULL) return NULL;
  else {
    while (curr->data != value && curr->Next != NULL)
      curr = curr->Next;

    if(curr->data == value)
      return curr;
    else
      return NULL;
  }
}
template <typename T>
Array<T>::Insert(Elem<T> *before, char value)
{
  Elem *newElem = new Elem;
  newElem->data = value;
  Elem *cur = Head, *temp;
  while (cur->Next != before)
    cur = cur->Next;
  if (cur->Next == before) {
    temp = cur->Next;
    cur->Next = newElem;
    newElem->Next = temp;
    Count++;
  }
  else delete newElem;
}
void main()
{
    Array<int> a;
    int m[]={9,1,5, 6,4, 0,2,3, 2,5};
     double d[]={0.9, 10.5, 0.1, 2.4};
     cout<<"\n";;
     for(int i=0; i<10; i++) cout<<m[i]<<' ';
     Elem *pElem=a.Search('r');   // <-ссылается сюда
     a.Insert(pElem, 'H');
     a.Remove(pElem);
     cout<<m[2]<<"\n";
     cout<<"\n";
     for(i=0; i<4; i++)cout<<d[i]<<' ';cout<<"\n";
     cout<<"********************************""\n";
     cout<<d[2]<<"\n";
     cout<<"********************************""\n";
     
}


 
--------------------
No Fucking Future
PM MAIL ICQ   Вверх
DeadSoul
Дата 19.4.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Elem -это шаблон! Это не тип. Подставь в это место Elem<int> вместо Elem 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
papam
Дата 19.4.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

Репутация: 1
Всего: 4



Спасибо 
--------------------
No Fucking Future
PM MAIL ICQ   Вверх
likehood
Дата 20.4.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 8
Всего: 24



Кстати, в классе Elem у тебя pos имеет тип T, хотя по идее это должен быть int.
Попробуй создать Array<string> и вызвать метод Array::GetElem(int) - посмотрим что скажет компилятор. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.