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

класс не может содержать список аргументов шаблона - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем MARSH http://www.cyberforum.ru/cpp-beginners/thread740689.html
1. Описать структуру с именем MARSH, содержащую следующие поля: ■ название начального пункта маршрута; ■ название конечного пункта маршрута; ■ номер маршрута. 2. Написать программу, выполняющую следующие действия: ■ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; ■ вывод на экран информации о...
C++ Написать программу, вычисляющую скорость, с которой бегун пробежал дистанцию 1. Написать программу, вычисляющую скорость, с которой бегун пробежал дистанцию. Рекомендуемый вид экрана во время выполнения программы приведен ниже. Вычисление скорости бега. Введите длину дистанции (метров) -> 1000 Введите время (минут.секунд)-> 3.25 Дистанция: 1000 Время: 3 мин 25 сек = 205 сек Вы бежали со скоростью 17.56 км/час 2. Написать программу для расчёта по формуле ... http://www.cyberforum.ru/cpp-beginners/thread740686.html
заполнение массива функция C++
Доброй ночи! Пытаюсь при помощи функции и указателей заполнить массив. #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int func_mass (int ptr_arr);
Массив структур, сохранение начала каждой из структур C++
Я создал такую структуру class Lancuch { public: char cos; Lancuch * nastepny; }; Lancuch * poczatek=NULL; cin >> n;
C++ Дана целочисленная квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread740676.html
Всем доброго времени суток!Я тут немнога запутался, кто может пожалуйста помочь разобраться!? Вообщем задание такого - Дана целочисленная квадратная матрица. Определить произведение элементов в тех строках, которые не содержат отрицательных элементов; Вот мой код: #include <cstdlib> #include <iostream> #define x 4 #define y 4
C++ Работа с массивом через указатели(Определить, строго ли чередуются элементы в массиве) Задан массив из N элементов, состоящий только из нулей и единиц. Определить, строго ли чередуются элементы в массиве. Программа должна вывести либо слово "да", либо слово "нет". Значение N и элементы массива ввести с клавиатуры. надо с помощью указателей подробнее

Показать сообщение отдельно
m1ster
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 55

класс не может содержать список аргументов шаблона - C++

21.12.2012, 02:48. Просмотров 843. Ответов 1
Метки (Все метки)

я создал шаблон
заменил его в коде вместо vector
и теперь везде на месте myvector пишет
class "myvector" не может содержать список аргументов шаблона
в чем проблема?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <iostream>
using namespace std;
template<class MyType>
class myvector{
private:
    MyType *arr;
    int capacity;
public:
    class iterator
    {
    private:
        MyType *ptr;
    public:
        iterator(MyType *ptr):ptr(ptr){};
        friend class myvector;
        MyType& operator*();
        iterator&operator ++();
        iterator&operator --();
        int operator!=(const iterator&) const;
        int operator==(const iterator&) const;
 
    };
    iterator _begin() const;
    iterator _end() const;
    myvector<MyType>&operator=(const myvector<MyType>&);//перегружаем равно
    myvector():arr(nullptr),capacity(0){}//констуктор
    myvector(int s):capacity(s),arr(new MyType[s]){}//конструктор
    void push_back(const MyType&);//добавление
    void erase(const MyType&);//удаление
    int size() const;//возвращает размер
    ~myvector(){if(arr!=nullptr)//диструктор
        delete [] arr;
    }
    void clear()//очистка вектора
    {if(arr!=nullptr)
        delete [] arr;
    capacity=0;
    }
 
    MyType&operator [](int);//возвращаем тип по числу
 
};
 
////*********ДЛЯ ИТЕРАТОРА******
//template <class MyType>
//myvector<MyType>::iterator(MyType *ptr): ptr(ptr){}
 
template <class MyType>
MyType&myvector<MyType>::iterator::operator *()
{
return *ptr;
}
 
template<class MyType>
typename myvector<MyType>::iterator& myvector<MyType>::iterator::operator++()
{
    ptr++;
    return *this;
}
template<class MyType>
typename myvector<MyType>::iterator& myvector<MyType>::iterator::operator--()
{
    ptr--;
    return *this;
}
 
template<class MyType>
int myvector<MyType>::iterator::operator!=(const iterator&i) const
{
    return i.ptr!=ptr;
}
template<class MyType>
int myvector<MyType>::iterator::operator==(const iterator&i) const
{
    return i.ptr==ptr;
}
 
template<class MyType>
void myvector<MyType>::push_back(const MyType&element)
{
 
MyType *temp= new MyType[++capacity];
for(int i=0; i<(capacity-1); ++i)
temp[i]=arr[i];
if(capacity!=1)
delete [] arr;
arr=temp;
arr[capacity-1]=element;
}
 
template <class MyType>
int myvector<MyType>::size() const
{
return capacity;
}
 
template <class MyType>
MyType&myvector<MyType>::operator [](int i)
{
    return arr[i];
}
 
template <class MyType>
typename myvector<MyType>::iterator myvector<MyType>::_begin() const
{
iterator i(arr);
return i;
}
 
template <class MyType>
typename myvector<MyType>::iterator myvector<MyType>::_end() const
{
iterator i(arr+capacity);
return i;
}
template <class MyType>
void myvector<MyType>::erase(const MyType&el)
{
    for(int i=0;i<capacity;++i)
        if(arr[i]==el){
            for(i;i<capacity;++i)
                arr[i]=arr[i+1];
        }
        capacity--;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru