Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
koma3
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 66
#1

Возникла трудность с шаблонами - C++

29.08.2012, 16:37. Просмотров 1150. Ответов 21
Метки нет (Все метки)

Не компилится следующий код. Не даёт вернуть итератор вектора. Почему нельзя так делать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <class Type>
class Vector
{
    vector<Type> v;
 
    vector<Type>::iterator begin()
    {
        return v.begin();
    }
};
 
int main()
{
    Vector<string> s;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2012, 16:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возникла трудность с шаблонами (C++):

Трудность с вычилениями. - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; int main(int argc, char *argv) { float n1=10; float n2=n1/3; ...

Трудность с компиляцией классов - C++
Здраствуйте. У меня возникла проблема при компиляции программы из классов с++. Программа заключается в написании системы управления лифтом....

Трудность в создании программы на С++ линейный алгоритм - C++
длина отрезка задана в дюймах(1 дюйм=2,54 см). перевести значения длины в метрическую систему, то есть выразить её в метрах сантиметрах и...

Работа с шаблонами с++ - C++
Добрый вечер. Опять возник вопрос( Нужно создать шаблон списка. Для этого нужно создать структуру, где будут храниться указатели на...

Программа с шаблонами: - C++
Написал простенькую программу с шаблонами, но компилятору она не нравится. Подскажите, как переделать? #include &lt;iostream&gt; using...

Работа с шаблонами С++ - C++
Задача следующая: реализовать пирамидальную сортировку с итерфейсом таким - подаем класс итератор на наши данные и сласс сравнения в класс...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
29.08.2012, 17:29 #16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

ну тогда рекомендовал бы ТС не пишисать в нём, либо использовать уже готовые шаблонные классы контейнеров, а не сочинять собственные велосипеды...

Не по теме:

В MSVS 2008 у меня вываливает ошибки:

1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>d:\test\main.cpp(10) : warning C4346: 'std::vector<Type>::iterator' : dependent name is not a type
1> prefix with 'typename' to indicate a type
1> d:\test\main.cpp(14) : see reference to class template instantiation 'Vector<Type>' being compiled
1>d:\test\main.cpp(10) : error C2146: syntax error : missing ';' before identifier 'begin'
1>d:\test\main.cpp(11) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\test\main.cpp(13) : warning C4183: 'begin': missing return type; assumed to be a member function returning 'int'

alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2012, 17:32 #17

Не по теме:

Цитата Сообщение от novi4ok Посмотреть сообщение
попробуй и доложи что получится
А самим?



Добавлено через 2 минуты
Цитата Сообщение от Andsteadur Посмотреть сообщение
В MSVS 2008 у меня вываливает ошибки:
В MSVS 2010 то же самое.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.08.2012, 18:44 #18
Возьмите за правило: в любом шаблонном описании вида тип<тип>::тип писать typename перед ним. Компилятор себе и так ноги ломает на синтаксисе Си++, помогите ему выжить. А то он vector<int>::iterator путает с именем метода.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
29.08.2012, 20:06 #19
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- ну тогда рекомендовал бы ТС не пишисать в нём, либо использовать уже готовые шаблонные классы контейнеров, а не сочинять собственные велосипеды...

Пожалуйста, у меня к тебе просьба. Всего одна, не надо сбивать с толку людей, задающих вопрос.
Либо поставь нормальный компилятор, соответствующий стандарту С++98/03 (или С++11) и проверяй код в нем, а если не компилируется - разберись перед тем как отвечать.
Либо смотри в стандарт/книжку, которая описывает реалии стандартов С++.
-=ЮрА=-
29.08.2012, 20:20
  #20

Не по теме:

ForEveR, может мне кроме компилятора пойти убицца ап стену?Не дождешся!И у меня к тебе просьба-хочешь что то сказать пиши в ЛС, а не загаживай форум

ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
29.08.2012, 20:36 #21

Не по теме:

-=ЮрА=-, Не... Пойти стандарт почитать.



A name used in a template declaration or definition and that is dependent on a template-parameter is
assumed not to name a type unless the applicable name lookup finds a type name or the name is qualified
by the keyword typename.
When a qualified-id is intended to refer to a type that is not a member of the current instantiation (14.6.2.1)
and its nested-name-specifier refers to a dependent type, it shall be prefixed by the keyword typename, forming
a typename-specifier. If the qualified-id in a typename-specifier does not denote a type, the program is illformed.
nameless
29.08.2012, 20:57     Возникла трудность с шаблонами
  #22

Не по теме:

-=ЮрА=-, если стандарт осилить не можете, то Джосаттиса хоть полистайте. В ней подобным моментам уделено много страниц текста..)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 20:57
Привет! Вот еще темы с ответами:

Работа с шаблонами - C++
Доброго вечера! Сейчас решаю задачку на использование шаблонов, и вот с чем столкнулся: при вводе значений в массив, выдает ошибку (она на...

Ошибка с шаблонами - C++
Возникла проблема. Пример: Создал шаблонный класс с двумя параметрами, один из которых задан по умолчанию. С одной стороны, все работает: ...

Перемножыть матрицы 2*3 и 3*2, в итоге должна быть матрица 3*3, здесь и трудность - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char *argv) { int i,j,k,l; int...

Задача с шаблонами функций - C++
Необходимо написать программу, которая использует шаблон функции по имени Min для определения наименьшего из двух аргументов, используя...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.08.2012, 20:57
Закрытая тема Создать тему
Опции темы

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