Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для Via_Tor
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10

Шаблон класса двусвязного списка, метод, возвращающий указатель

24.01.2016, 23:13. Показов 3045. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу шаблон класса двусвязного списка. Всё в хедере. В классе присутствует структура item. Пытаюсь написать метод, возвращающий указатель на тип item, однако компилятор выдает ошибку "C2061 синтаксическая ошибка: идентификатор "item" " Строка 58
Что тут неправильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
template <typename T>
class DoubleList
{
public:
    struct item 
    {
        T value;
        item *pPrew;
        item *pNext;
        item(T value);
    };
private:
    int size;
    item *pHead;
    item *pTail;
public:
    DoubleList();
    ~DoubleList();
    int get_size();
    item* begin();
    item* end();
    item* step(item*);
    void add(T);
    void addHead(T);
    void clear();
    int find_all(T);
    item* find_fist(T);
    int find_last(T);
    void insert(int, T);
    void remove_at(int);
    void remove_fist(T);
    void reverse();
    void show();
};
 
template <typename T>
DoubleList<T>::DoubleList(){
    size = 0;
    pHead = pTail = NULL;
}
 
template <typename T>
DoubleList<T>::~DoubleList(){
    item *pTemp = pHead;
    while (pHead) {
        pTemp = pTemp->pNext;
        delete pHead;
        pHead = pTemp;
    }
}
 
template <typename T>
int DoubleList<T>::get_size(){
    return size;
}
 
template <typename T>
DoubleList<T>::item* DoubleList<T>::begin() {
    return pHead;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2016, 23:13
Ответы с готовыми решениями:

Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в начало списка новый
Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в начало списка новый элемент со значением D1...

Шаблон двусвязного списка
Написала такую программу реализации двусвязного списка.Когда перерабатывала под шаблон,выдает ошибку.Подскажите,в чем проблема? ...

Создать для класса виртуальный метод, возвращающий уникальный идентификатор класса
В курсаче по ООП сказано создать для класса виртуальный метод,возвращающий уникальный идентификатор класса. Вопрос в том, что это такое?

21
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
25.01.2016, 09:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Via_Tor Посмотреть сообщение
C++
1
2
3
4
5
template <typename T> 
typename DoubleList<T>::item::item(T value){ 
    this->value = value; 
    pPrew = pNext = NULL; 
}
Вот здесь typename не нужен.

Добавлено через 1 минуту
Т.е. надо так:
C++
1
2
3
4
5
template <typename T> 
DoubleList<T>::item::item(T value){ 
    this->value = value; 
    pPrew = pNext = NULL; 
}
1
 Аватар для Via_Tor
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
25.01.2016, 10:56  [ТС]
Всё решил таким макаром:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
// doubleList.h
#pragma once
 
template <typename T>
class DoubleList
{ ... }
__

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// dictionary.h
#pragma once
#include "DoubleList.h"
 
struct WordItem
{
    std::string word;
    int count;
    WordItem();
    WordItem(std::string);
    WordItem& operator = (const WordItem &obj);
    bool operator == (WordItem& obj);
};
 
class Dictionary
{ ... }
___

C++
1
2
3
4
5
6
7
8
9
10
11
12
// dictionary.spp
#include <iostream>
#include <string>
#include "Dictionary.h"
using namespace std;
 
 
WordItem::WordItem(){
    this->word = "";
    count = 0;
}
       ( ... )
C++
1
2
3
4
5
6
7
// main.cpp
#include <iostream>
#include <string>
#include "Dictionary.h"
using namespace std;
 
void main() { ... }


Благодарю за помощь.

Добавлено через 2 минуты
DrOffset, да, спасибо, я уже исправил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2016, 10:56

Элемент двусвязного списка содержит указатель на строку. Вставить строку в конец списка
Элемент двусвязного списка содержит указатель на строку. Вставить строку в конец списка. В список помещается копия входной строки в...

Метод класса возвращающий итератор
Не могу заставить метод класса возвращать итератор, помогите понять почему компилятор не разрешает это сделать: Класс (методы...

Как передать в метод класса Menu указатель на метод дочернего класса?
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: setCallback(*********); //...

Арифметика Класса Двусвязного списка
Всем привет. тут такая проблема есть у меня программа создание двусвязного циклического списка и действия над ним. и надо создать...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru