я получаю ошибки для кода ниже, когда я пытаюсь скомпилировать, что сказать мне следующее:Проблемы с членством в шаблонах?
«IsEmpty»: не является членом «_Stack»
Ошибка при компиляции члена шаблона класса недействительный QUEUES функции»:: Епдиеий (константные T &)
#include <iostream> #include <stack> using namespace std; template <class T> class _Stack : public stack<T> { public: T pop(){ T tmp=stack::top(); stack::pop(); return tmp; } }; template <class T> class QueueS { public: QueueS(){} bool isEmpty() const{ } void enqueue(const T& el){ while (!output.isEmpty()) { input.push(ouput.pop()); } input.push(el); } private: _Stack<T> input; _Stack<T> output; };
Я не уверен, что происходит. Может ли кто-нибудь помочь? Я, очевидно, еще не реализовал isEmpty. Интересно, должно ли это иметь эффект.
Одна проблема заключается в том, что ' 'IsEmpty': не является членом«_Stack''. Это не связано с шаблонами. – juanchopanza
Как вы думаете, 'stack :: top()' возвращается? 'top' - это функция-член, и ее следует отменить * экземпляр *' std :: stack'. – 0x499602D2
Не связано с вашей проблемой, но все же: вы не должны использовать идентификаторы, начинающиеся с подчеркивания и прописной буквы (например, '_Stack'). См. [Здесь] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier) для связанной должности SO. – jogojapan