Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
IVSasha
6 / 6 / 3
Регистрация: 29.07.2015
Сообщений: 61
#1

Исправить ошибки в объявлении шаблона - C++

13.08.2015, 20:34. Просмотров 298. Ответов 2
Метки нет (Все метки)

Как исправить ошибки?

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
template <typename T,
    template <typename Elem> class Container=deque>
class Stack
{
private:
    Container<T> elems;      // Элементы
    
public:
    void Push(T const &elem);
    void Pop();
    T Top() const;
    bool Empty() const  { return elems.empty(); }
};
 
 
template <typename T,
    template <typename Elem> class Container>
void Stack<T, Container>::Push(T const &elem)
{
    elems.push_back(elem);
}
 
template <typename T,
    template <typename Elem> class Container>
void Stack<T, Container>::Pop()
{
    elems.pop_back();
}
 
template <typename T,
    template <typename Elem> class Container>
T Stack<T, Container>::Top() const
{
    return elems.back();
}

C++
1
Stack<int, vector> vStack;
error: type/value mismatch at argument 2 in template parameter list for 'template<class T, template<class Elem> class Container> class Stack'|

error: expected a template of type 'template<class Elem> class Container', got 'template<class _Tp, class _Alloc> class std::vector'|

error: invalid type in declaration before ';' token|
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2015, 20:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Исправить ошибки в объявлении шаблона (C++):

Исправить ошибки в определении шаблона класса
Подскажите пожалуйста как исправить эту ошибку template &lt;class T&gt; struct...

Ошибка C4307 при объявлении в main() указателя шаблона-класса
Привет, всем. Помогите, плиз, с синтаксисом. Возникает, ошибка при объявлении в...

Моя ошибка в объявлении функции и как её исправить?
Доброго дня форумчане. Прошу вашей помощи. Недавно начал изучать c++. Учусь по...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; ...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не...

2
DrOffset
7518 / 4514 / 1097
Регистрация: 30.01.2014
Сообщений: 7,362
13.08.2015, 20:58 #2
IVSasha, у vector и deque как минимум два шаблонных параметра, а у тебя допускается только один.
1
IVSasha
6 / 6 / 3
Регистрация: 29.07.2015
Сообщений: 61
13.08.2015, 21:18  [ТС] #3
Цитата Сообщение от DrOffset Посмотреть сообщение
у vector и deque как минимум два шаблонных параметра, а у тебя допускается только один.
спасибо. внес изменения и теперь программа работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T, 
    template<typename Elem, typename Alloc=std::allocator<T>> class Container>
class Stack
{
private:
    Container<T> elems;      // Элементы
    
public:
    void Push(T const &elem);
    void Pop();
    T Top() const;
    bool Empty() const      { return elems.empty(); }
};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2015, 21:18
Привет! Вот еще темы с решениями:

Явная специализация шаблона. Ошибки
Помогите исправить ошибки. Надо для шаблонного класса сделать специализацию...

Ошибки при создании шаблона
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &quot;time.h&quot; #include &lt;math.h&gt;...

Ошибки в написании шаблона класса
Пытался сделать шаблон класса, но что-то видать делаю не правильно и класс не...

При введении шаблона игнорируются ошибки
При написании класса, если не превращать его в шаблонный класс, MSVS находит...


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

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

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