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

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

Войти
Регистрация
Восстановить пароль
 
IVSasha
6 / 6 / 2
Регистрация: 29.07.2015
Сообщений: 61
#1

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

13.08.2015, 20:34. Просмотров 249. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2015, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправить ошибки в объявлении шаблона (C++):

Исправить ошибки в определении шаблона класса - C++
Подскажите пожалуйста как исправить эту ошибку template &lt;class T&gt; struct A { T x; }; template &lt;class T&gt;

Ошибка C4307 при объявлении в main() указателя шаблона-класса - C++
Привет, всем. Помогите, плиз, с синтаксисом. Возникает, ошибка при объявлении в main() указателя шаблона-класса. #include &lt;iostream&gt; ...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

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

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Ошибки при создании шаблона - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &quot;time.h&quot; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; ...

2
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
13.08.2015, 20:58 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
IVSasha, у vector и deque как минимум два шаблонных параметра, а у тебя допускается только один.
1
IVSasha
6 / 6 / 2
Регистрация: 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
Привет! Вот еще темы с ответами:

Ошибки в написании шаблона класса - C++
Пытался сделать шаблон класса, но что-то видать делаю не правильно и класс не работает. Классы в программе используют наследование и...

Явная специализация шаблона. Ошибки - C++
Помогите исправить ошибки. Надо для шаблонного класса сделать специализацию float #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...

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

Исправить ошибки - C++
Выполнить задание 6-й лабораторной работы («Двумерные массивы»), оформив каждый пункт задания в виде функции. Все необходимые данные для...


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

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

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