Аватар для Via_Tor
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10

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

24.01.2016, 23:13. Показов 2949. Ответов 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
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru