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

Шаблон двусвязного списка и ошибка "Члены недоступны" - C++

Восстановить пароль Регистрация
 
Dima_Bro
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 16
09.04.2014, 21:46     Шаблон двусвязного списка и ошибка "Члены недоступны" #1
Уважаемые форумчане, помогите в решение следующей проблемы. Хочу создать шаблон для двусвязного списка, объявил класс, структуру, которая отвечает за элемент списка. В функции void insert() при попытке обращения к полю структуры, компилятор пишет : "Члены недоступны". Использую компилятор VS2012. Помогите пожалуйста исправить мои косяки.

C++ (Qt)
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
# include <iostream>
 
using namespace std;
 
 
template <class T>
struct node{
    T data; 
    node *next;
    node *prev;
};
 
template <class T>
class List{
private: 
    int counter;
    node *head, *tail;;
public: 
    List(){
        head=NULL;
        tail=NULL;
        counter=0;
    }
    ~List();
    void insert(){
        node *temp=new node;
        temp->// на этом месте компилятор пишет "члены не доступны"
    }
};
 
int main()
{
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 21:46     Шаблон двусвязного списка и ошибка "Члены недоступны"
Посмотрите здесь:

Ошибка в программе, где создается шаблон класса "стек" C++
Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
Ошибка при заполнении двусвязного списка C++
C++ Дружественная функция шаблон и ошибка "Ссылка на неразрешенный внешний символ"
"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.04.2014, 22:29     Шаблон двусвязного списка и ошибка "Члены недоступны" #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
node<T> *temp=new node<T>;
Dima_Bro
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 16
10.04.2014, 17:08  [ТС]     Шаблон двусвязного списка и ошибка "Члены недоступны" #3
Tulosba, спасибо!

Добавлено через 17 часов 35 минут
После того как исправил, добавил функций, появилась куча ошибок. Смотрел подобные темы в источниках, там приведен подобный код. Не понимаю как исправить ошибки. Прошу помощи у вас, форумчане. Привожу список ошибок и свой код.

Построение начато: проект: ConsoleApplication1, Конфигурация: Debug Win32 ------
1> Исходный код.cpp
1>c:\users\dima\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\исходный код.cpp(16): error C2955: node: для использования класса шаблон требуется список аргументов шаблон
1> c:\users\dima\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\исходный код.cpp(6): см. объявление "node"
1> c:\users\dima\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\исходный код.cpp(51): см. ссылку на создание экземпляров класса шаблон при компиляции "List<T>"
1> with
1> [
1> T=double
1> ]

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
# include <iostream>
 
using namespace std;
 
template <class T>
struct node{
    T data; 
    node *next;
    node *prev;
};
 
template <class T>
class List{
private: 
    int counter;
    node *head, *tail;;
public: 
    List(){
        head=NULL;
        tail=NULL;
        counter=0;
    }
    ~List(){
        head=NULL;
        tail=NULL;
    }
    void insert(T d){
        node<T> *temp=new node<T>;
        temp->next=NULL;
        temp->data=d;
        if(head!=NULL){
            temp->prev=tail;
            tail->next=temp;
            tail=temp;
        }
        else{
            temp->prev=NULL;
            head=tail=temp;
        }
        counter++;
    }
    void show(){
        node<T> temp=head;
        while(temp!=NULL){
            cout<<temp->data<<endl;
            temp=temp->next;
        }
    }
};
 
 
int main()
{
    List<double> lst; 
    return 0;
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2014, 17:30     Шаблон двусвязного списка и ошибка "Члены недоступны" #4
16 строка. То же самое что и было раньше. Не указан аргумент шаблона.
C++
1
node<T> *head, *tail;
Dima_Bro
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 16
10.04.2014, 17:44  [ТС]     Шаблон двусвязного списка и ошибка "Члены недоступны" #5
Tulosba, все работает. Спасибо. Но у меня возник вопрос, как быть если это структура вложена в сам класс? Имеет ли смысл делать вложенную структуру?
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2014, 17:48     Шаблон двусвязного списка и ошибка "Члены недоступны" #6
Цитата Сообщение от Dima_Bro Посмотреть сообщение
Имеет ли смысл делать вложенную структуру?
Если не планируется использовать ее снаружи, то можно и вложенную реализовать.
Dima_Bro
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 16
10.04.2014, 17:56  [ТС]     Шаблон двусвязного списка и ошибка "Члены недоступны" #7
Tulosba, спасибо за помощь. Может подскажете литературу хорошую почитать, на английском или на русском не имеет значение. Я хочу разобраться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 18:15     Шаблон двусвязного списка и ошибка "Члены недоступны"
Еще ссылки по теме:

Возникает ошибка "0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2"." C++
Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" C++
При компиляции ошибка: C2228: left of ".real",".imag" must have struct/class/union C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2014, 18:15     Шаблон двусвязного списка и ошибка "Члены недоступны" #8
Литература C++
Yandex
Объявления
10.04.2014, 18:15     Шаблон двусвязного списка и ошибка "Члены недоступны"
Ответ Создать тему
Опции темы

Текущее время: 03:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru