0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
||||||
1 | ||||||
Шаблон класса двусвязного списка, метод, возвращающий указатель24.01.2016, 23:13. Показов 2233. Ответов 21
Метки нет Все метки)
(
Пишу шаблон класса двусвязного списка. Всё в хедере. В классе присутствует структура item. Пытаюсь написать метод, возвращающий указатель на тип item, однако компилятор выдает ошибку "C2061 синтаксическая ошибка: идентификатор "item" " Строка 58
Что тут неправильно?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
24.01.2016, 23:13 | |
Ответы с готовыми решениями:
21
Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в начало списка новый Шаблон двусвязного списка
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
||||||
24.01.2016, 23:18 | 2 | |||||
Via_Tor,
2
|
Don't worry, be happy
|
||||||
24.01.2016, 23:19 | 3 | |||||
DoubleList<T>::item зависимое имя, поэтому необходимо добавить typename:
2
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|
24.01.2016, 23:25 [ТС] | 4 |
Благодарю
0
|
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 45
|
||||||
24.01.2016, 23:30 | 5 | |||||
Объясните пожалуйста почему не так?
0
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
24.01.2016, 23:44 | 6 |
_Bes_, Потому что item находитсяя в пространстве имён DoubleList<T>
0
|
0 / 0 / 1
Регистрация: 20.01.2016
Сообщений: 45
|
||||||
24.01.2016, 23:58 | 7 | |||||
непонятно... пространство имен вроде namespace....
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|||||||||||
25.01.2016, 00:04 [ТС] | 8 | ||||||||||
Ехаю дальше. Класс, содержащий структуру WordItem.
В хедере:
Не могу понять, как исправить.
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|
25.01.2016, 00:14 [ТС] | 10 |
_Bes_, структура item относится к классу DoubleList. Это нужно указывать в заголовке.
Добавлено через 54 секунды Croessmah, есть. Да и у меня эти скобки автоматом прописываются (VS 15).
0
|
Don't worry, be happy
|
||||||
25.01.2016, 00:16 | 11 | |||||
Via_Tor, проверил: http://rextester.com/PRZI47071
компилируется строка 1? А у Вас в cpp больше ничего нет? А где
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
||||||
25.01.2016, 00:20 [ТС] | 12 | |||||
Croessmah, есть, просто сырой совсем еще, да и это первая ошибка в нем. А вообще, как-то так:
0
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
||||||
25.01.2016, 00:23 | 13 | |||||
В С++ много пространств имён - каждый класс - своё пространство, функция - своё, неименнованные также бывают.
![]() Вроде всё должно быть нормально, но попробуйте вынести WordItem из Dictionary. Вложенные классы, это инструмент, и его не надо юзать везде. И да здравствует мыло душистое : https://msdn.microsoft.com/ru-... h0937.aspx
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|
25.01.2016, 00:28 [ТС] | 14 |
Убрал из хедера using namespace std; — СРР-шка вся в момент покраснела. Вставил обратно — всё норм.
0
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
25.01.2016, 00:33 | 15 |
Ну так положите её в cpp.
И непосредственно в функции в хедере, если лень std:: набрать. Вынесите WordItem из Dictionary. Правда ли студия запрещает определять методы вложенного класса в cpp?
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|||||||||||
25.01.2016, 00:52 [ТС] | 16 | ||||||||||
Nosey, убрал из хедера using namespace std; , вынес структуру за класс:
0
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
25.01.2016, 00:56 | 17 |
Via_Tor, Приведите полный код хедера и срр файлов.
И скорее всего я зря вас попросил попросил вынести WordItem, т.е. зря бочку катил на Студию, хотя проверить не имею возможности ![]()
0
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
|||||||||||
25.01.2016, 01:04 [ТС] | 18 | ||||||||||
Nosey,
0
|
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
25.01.2016, 01:31 | 19 |
Via_Tor, Могу вас обрадовать, что код у вас верный
![]() #include "DoubleList.h" присутствует using namespace std; А по вопросу, если у вас только одна эта ошибка, то: 1) Найдите в менюшках сборки, очистку проекта(clean). - Очистить -> попробовать собрать. 2) Если не поможет, поищите в папке и подпапках проекта(которая на диске ![]() ![]() Добавлено через 10 минут 3) Если первые два не сработали - приложить сюда все ошибки, так как их выводит студия (ctrl+c -> ctrl+v и без скринов).
1
|
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 10
|
||||||||||||||||
25.01.2016, 08:59 [ТС] | 20 | |||||||||||||||
Nosey, к сожалению ничего не помогает. Да и вообще что-то непонятное происходит: подчеркиваются одни ошибки, переключаюсь с одного файла на другой и обратно — ошибки уже почти не подчеркнуты. То компилятор видит WordItem то реагирует как на неопределенное... Может еще завтра попробую тупо создать новый проект и скопипастить туда код.
В общем вот все файлы проекта: DoubleList.h: Кликните здесь для просмотра всего текста
Dictionary.h Кликните здесь для просмотра всего текста
Dictionary.cpp Кликните здесь для просмотра всего текста
Добавлено через 13 минут Короче, дело не в этой структуре. Проблемы начинаются, когда задействую шаблон класса DoubleList.
0
|
25.01.2016, 08:59 | |
Помогаю со студенческими работами здесь
20
Метод класса возвращающий итератор Как передать в метод класса Menu указатель на метод дочернего класса? Арифметика Класса Двусвязного списка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |