Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
#1

итератор в классе-шаблоне - C++

12.10.2011, 14:57. Просмотров 518. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template<class T> class m_vector: public vector<T>
{
public:
T at(int i);
m_vector(){}
~m_vector(){}
};
 
template<class T> T m_vector<T>::at(int index)
{
 
int i=0;
 
for(m_vector<T>::iterator it=this->begin();this->end();++it)
{
if(i==index)
return *it;
++i;
}
}
Не компилится. Ругается на
C++
1
m_vector<T>::iterator it
Пишет expected ; before it

А если, допустим, так
C++
1
m_vector<char>::iterator it
то компилится нормально. В чем дело? Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 14:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос итератор в классе-шаблоне (C++):

Дружественные функции в классе-шаблоне - C++
stdafx.h #include &lt;iostream.h&gt; template &lt;typename T&gt; class Iterator; template &lt;typename T&gt; class Set ...

В шаблонном классе, один из параметров которого контейнер, объявить итератор этого контейнера - C++
Собсно #include &lt;windows.h&gt; #include &lt;iterator&gt; #include &lt;vector&gt; using namespace std; template &lt;class T, template...

Как быть, если в шаблоне классе предполагается использование ОДИНАКОВЫХ типов? - C++
Вот код, понятно, демонстрационныый, упрощён донельзя для понятности. #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace...

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка - C++
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание: Реализовать двусвязный список (list),...

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе - C++
У меня есть основной класс с названием Root один из его членов наследует дочерний класс SubRoot. Скажите как объявить, что бы один из...

4
Kastaneda
Jesus loves me
Эксперт С++
4701 / 2905 / 239
Регистрация: 12.12.2009
Сообщений: 7,402
Записей в блоге: 2
Завершенные тесты: 1
12.10.2011, 15:07 #2
Вот так попробуй
C++
1
typename m_vector<T>::iterator it=this->begin();
кстати, что за странное условие выхода из цикла
C++
1
this->end();
?
1
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:15  [ТС] #3
Спасибо, помогло. А можно ещё в 2х словах почему typename обязателен?

А условие, конечно,
C++
1
it < this->end()
Перепечатывал вручную из виртуальной машины.
0
Kastaneda
Jesus loves me
Эксперт С++
4701 / 2905 / 239
Регистрация: 12.12.2009
Сообщений: 7,402
Записей в блоге: 2
Завершенные тесты: 1
12.10.2011, 15:19 #4
Цитата Сообщение от rpz Посмотреть сообщение
А можно ещё в 2х словах почему typename обязателен?
Потому что при указании имени типа используя оператор "::" в шаблонном классе (ф-ции) компилятор между именем типа и чем еще (например именем переменной) выберет что-то еще. Используя typename мы явно указываем компилятору, что речь идет именно об имени типа.



C++
1
it < this->end()
а в первом посте не так написанно)
1
rpz
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 5
12.10.2011, 15:58  [ТС] #5
Спасибо
0
12.10.2011, 15:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 15:58
Привет! Вот еще темы с ответами:

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B? - C++
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; //Вот главный класс class A{ public: A (){}; class...

Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое! - C++
Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе...

итератор - C++
Привет всем! подскажите пожалуйста литературу где подробно описана реализация итераторов ...

Итератор С++ - C++
помогите пожалуйста написать итератор, накапливающий сумму пройденных элементов!!!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.