Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
3 / 3 / 2
Регистрация: 28.09.2013
Сообщений: 32

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

23.01.2014, 22:55. Показов 9007. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru