|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||||||||||||||||||||||
Использование вложенного класса26.01.2017, 15:06. Показов 1208. Ответов 17
Метки нет (Все метки)
Доброго времени суток. Решил подтянуть знания в базовых алгоритмах и структурах данных, а заодно попрактиковаться в шаблонах и обобщенном программировании. Сейчас пишу аналог вектора, и возникли трудности с определениями операций сложения и вычитания итераторов с целыми числами. Вот определение классов:
Я попробовал использовать предопределение класса iterator до определения метода:
Пробовал что-то такое:
Подскажите, как это сделать правильно? Добавлено через 4 часа 42 минуты Так, кстати, тоже нельзя:
0
|
||||||||||||||||||||||||||
| 26.01.2017, 15:06 | |
|
Ответы с готовыми решениями:
17
В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО! Вызов метода вложенного класса |
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||
| 26.01.2017, 15:12 | |||||||
1
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 26.01.2017, 15:14 | |||||||
|
вообще то вот так:
0
|
|||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 26.01.2017, 15:16 | |
|
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 26.01.2017, 15:38 | ||
|
0
|
||
|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||||
| 26.01.2017, 16:46 [ТС] | ||||||||
|
С использованием typename компилируется, спасибо!
0
|
||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 26.01.2017, 16:57 | |
|
4elovek37, для полного просветления советую почитать книгу "Шаблоны C++. Справочник разработчика", раздел про "Зависимые имена шаблонов".
Добавлено через 47 секунд Для старта можно еще вот это почитать: https://msdn.microsoft.com/ru-... zs2ee.aspx
0
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 26.01.2017, 17:00 | ||
|
С помощью typename мы явно говорим, что используется тип данных, иначе, компилятор воспринимает это как статическую переменную, объявленную в классе. Ничто ведь не мешает нам создать статическую переменную iterator в классе MyArrayList Добавлено через 23 секунды https://blogs.msdn.microsoft.c... arameters/
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.01.2017, 19:02 | |
|
0
|
|
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
|
||||||||
| 26.01.2017, 20:03 | ||||||||
|
Также "статические переменные" тут ни при чем. Да и почему именно статические? -----------------------
decltype(*this) тоже должно было прекрасно работать, с той только разницей, что decltype(*this) - ссылка, а вам там ссылка не нужна. Пришлось бы делать std::remove_reference<decltype(*this)>::type.
1
|
||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||
| 26.01.2017, 20:08 | |||||||||
0
|
|||||||||
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
|
|||
| 26.01.2017, 20:13 | |||
auto термин deduction использовался только в template argument deduction для шаблонов функций. К этой ситуации никакого отношения не имеет даже отдаленно.
0
|
|||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||
| 26.01.2017, 20:34 | ||||
|
0
|
||||
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
|
||||||||
| 26.01.2017, 20:41 | ||||||||
ClassName::MemberName - это квалифицированное имя члена класса - один из фундаментальнейших синтаксисов С++. Он применим к абсолютно любым членам класса, без исключения. Другое дело, что возможность обращаться к членам разного вида (через любой синтаксис) зависит от окружающего контекста, но это уже к данному синтаксису отношения не имеет.
2
|
||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||
| 26.01.2017, 21:10 | |||
|
Но я признаю, что обе эти возможности не имеют отношения к данной ситуации. Что-то увидел шаблоны и меня приглючило. Спасибо, что поправили.
0
|
|||
|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
|||||||
| 27.01.2017, 10:14 [ТС] | |||||||
Что бы не плодить топики (да и по теме подходит), спрошу здесь же: А как правильно поступить с friend op+ функцией? По идее, делать её шаблонной нет необходимости - независимо от конкретной специализации она всегда будет вызывать op+ класса итератора, расставляя операнды в "правильном" порядке. Но мне кажется, что сделать её нешаблонной не получится, или я ошибаюсь?
0
|
|||||||
|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||
| 27.01.2017, 13:56 [ТС] | ||||||
|
С дружественной функцией пока пришел только к этому:
0
|
||||||
| 27.01.2017, 13:56 | |
|
Помогаю со студенческими работами здесь
18
Объявление объекта вложенного класса Описать конструктор вложенного класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|