Я пытаюсь изучить использование шаблонов в C++. Я создал узел структур, которые я использую в реализации класса очереди, но я получаю ошибку компилятора: Error»ожидаемый тип спецификатор перед тем qnode в член функции BOOL MyQueue :: добавить (данные T)с использованием шаблона структуры в реализации класса шаблона
#include <iostream>
using namespace std;
template <typename T>
struct qnode {
qnode* Node;
T data;
};
template <class T>
class MyQueue {
qnode<T>* front;
qnode<T>* end;
public:
MyQueue() {
front=NULL;
end=NULL;
}
bool add (T n);
T get(void);
bool empty(void)
{
if (front == NULL)
return true;
else
return false;
}
size_t size(void)
{
}
};
template <typename T>
bool MyQueue<T>::add (T n)
{
qnode<T>* temp = new qnode;
temp->data = n;
temp->Node = NULL;
if (front == NULL)
{
cout << "Adding front qnode " << endl;
front = end= temp;
// front->Node = end;
return true;
}
cout << "Adding qnode " << endl;
end->Node = temp;
end=temp;
//delete temp;
return true;
}
Я глядя вперед для хорошего объяснения, как шаблонных параметров разрешаются в такой вложенной реализации.
@ZackNewsham не в C++ – 999k
@ 555k ahh - спасибо, я знаю, что это сделано в C. Я удалю комментарий –
Как сообщение об ошибке может быть связано с функцией 'MyQueue :: add (T data)' если код называет параметр 'n'? – 6502