3 / 3 / 2
Регистрация: 28.09.2013
Сообщений: 32

Шаблоны и вложенные классы - синтаксис

23.01.2014, 22:55. Показов 9034. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу класс бинарного красно черного дерева, решил сделать структуру узла в нем вложенной, но столкнулся с проблемой непонимания синтаксиса и борьбы с языком
идея примерно такова
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T> Tree
{
    template <class ValType> class Node;
    Node<T> root;
    //...
};
//Реализация Node
template <class T> template <class Valtype> class Tree<T>::Node<Valtype> //? уже вопрос, но студия характеризует полное имя этого класса так
{
    Node<Valtype> * left; //тут совсем встрял, компилятор выдает ошибки
// (например, "Node не является шаблоном (???)", ничего не проясняющие и кажется,
// мало связанные с истинной проблемой, аналогично и на Tree<T>::Node<Valtype> * left;
 
}
Вопрос: как же все таки правильно объявить то что мне надо?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2014, 22:55
Ответы с готовыми решениями:

Вложенные классы. Что за синтаксис такой?
Всем привет! Писал код с вложенным классом, столкнулся с таким синтаксисом: template &lt;typename Type&gt; class ExternalClass { ...

Вложенные классы
Как обратится к приватному полю класса(Builder), из вложенных в этот класс(Builder) классов (Component и т.д.)? Там в коде есть...

вложенные классы
Здорова господа! Снова мучаю класс String еще не замучал. Не могу скомпилировать программу с вложенным классом вот код: #include...

27
What a waste!
 Аватар для gray_fox
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
26.01.2014, 20:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от iDeveloper Посмотреть сообщение
Где можно найти подробное описание iterator_traits и свойств, меня интересуют reference, pointer, difference_type?
Наиболее подробно это описано в стандарте языка, я думаю) А так у меня например есть книжка B. Stroustrup "The C++ Programming Language" 3-d edition, там в Chapter 19. Iterators and Allocators об этом написано, думаю найти на русском труда не составит.
1
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 21
27.01.2014, 12:51
MrGluck, большое спасибо.

Добавлено через 15 часов 36 минут
Привет gray_fox. Есть небольшая проблема:
когда мы пишем - const int* ptr, то с помощью ptr нельзя менять значение переменной на которую указывает ptr. Как так же сделать с моим итератором - const list<int>::iterator iter. ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.01.2014, 13:04
iDeveloper, есть константный итератор. Это другой класс list<int>::const_iterator
0
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 21
27.01.2014, 13:13
мне нужен итератор на константу, а не константный итератор.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.01.2014, 13:39
Цитата Сообщение от iDeveloper Посмотреть сообщение
мне нужен итератор на константу, а не константный итератор.
вы попробуйте сначала, а потом возмущайтесь
Member type const_iterator is a random access iterator type that points to a const element.
0
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 21
27.01.2014, 13:47
Цитата Сообщение от Tulosba Посмотреть сообщение
Member type const_iterator is a random access iterator type that points to a const element.
Да Вы правы. Посмотрел как работают итераторы и константные итераторы контейнеров STL. Просто понятие константный итератор для встроенных типов означает другое.
0
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 21
28.01.2014, 23:43
Привет, gray_fox. Я создал итератор, вроде бы работает нормально. Но когда я использую
C++
1
std::transform(list_int.begin(),list_int.end(),list_int.begin(),tForm)
, то появляется - "error C4996: 'std::_Transform1': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'" . Я знаю что можно написать "#define _SCL_SECURE_NO_WARNINGS" чтобы отключить предупреждение, но я хотел бы чтобы оно без этого работало. Как это исправить?
0
What a waste!
 Аватар для gray_fox
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
29.01.2014, 16:27
Цитата Сообщение от iDeveloper Посмотреть сообщение
Как это исправить?
Не знаю, VС вообще на многие стандартные функции ругается как на небезопасные; доля правды в этом есть, конечно, но я эти предупреждения всегда отключаю)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2014, 16:27

Вложенные классы
Где можно почитать нормальную информацию о них? Читаю книгу С.Праты там непонятно что(привел внизу скрин таблицы, которую я вообще не...

Вложенные классы!!
НЕ могу разобраться ка это работает!!! приведите пожалуйста простой пример как это работает с реализацией класса

Вложенные классы
class A { private: B b_class; int a; public: A(); }; class B

Вложенные в друг друга классы
Есть исходный код: class1.h #pragma once #include &quot;class2.h&quot; class class1 { private: class2* c2; public: ...

Перегрузка операция + вложенные классы
Уже второй раз прошу помощи, никто толком не может помочь( Как правильно реализовать операцию &quot;-&quot; класса Time в таком...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

Новые блоги и статьи
Теория всего 6. Судьба неотвратима?
anaschu 21.07.2026
Математическое доказательство Судьбы: Точка бифуркации в едином тензорном ядре Модели ВсегоСвежее обновление питоновского ядра «Soil Chemistry 2. 0» дало нам неопровержимое математическое. . .
Теория всего 5. ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
anaschu 21.07.2026
Единое ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли Главная задача «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы» (аттракторов. . .
сукцессия 37. Внедрил дипсик в свой оркестр из ИИ. У него закончилось пространство чата, потому опубликую выводы из его работы здесь
anaschu 21.07.2026
==================================================================== КОНТЕКСТ: Моделирование микоризной сукцессии (AM → ECM) ==================================================================== . . .
сукцессия 36. Делаю прогоны модели около порога бифуркации (превращения эндо микоризы в экто микоризу)
anaschu 21.07.2026
СУКЦЕССИЯ МИКОРИЗ: КАК МАТЕМАТИКА ОБЪЯСНЯЕТ ПОДЗЕМНУЮ ВОЙНУ Мы привыкли думать, что лес — это деревья. А грибы — это то, что мы собираем в корзинку осенью. Но если заглянуть под землю, окажется,. . .
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru