フレンド クラスがどのように機能するかを理解するためだけに作成した 2 つの単純なクラスがあります。なぜこれがコンパイルされないのか、また Linear クラスが Queues クラス内の構造体にアクセスできるのか、私は混乱していますか?
Linear.h
template<typename k, typename v >
 class Linear
 {
    public:
    //Can I create a instance of Queues here if the code did compile? 
    private:
  };
Linear.cpp
#include "Linear.h" 
Queues.h
 #include "Linear.h"
 template<typename k, typename v >
 class Linear;
  template<typename x>
  class Queues
  {
    public:
    private:
        struct Nodes{
            int n;
        };
    //Does this mean I am giving Linear class access to all of my Queues class variable or    is it the opposite ? 
    friend class Linear<k,v>;
    };
Queues.cpp
  #include"Queues.h" 
私のエラーは
Queues.h:15: error: `k' was not declared in this scope
Queues.h:15: error: `v' was not declared in this scope
Queues.h:15: error: template argument 1 is invalid
Queues.h:15: error: template argument 2 is invalid
Queues.h:15: error: friend declaration does not name a class or function