C ++でのテンプレートの使用法を学ぼうとしています。キュー クラスの実装で使用している構造体ノードを作成しましたが、コンパイラ エラーが発生しています: Error" expected type specifier before qnode in member function bool MyQueue::add(T data)
#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;
    }
このようなネストされた実装でテンプレート パラメーターがどのように解決されるかについて、適切な説明を楽しみにしています。