如何将模板类和其朋友模板类分成不同的头文件?

时间:2015-05-23 14:31:24

标签: c++ class templates friend organization

文件包含模板类A和模板类B. A是B的朋友。

我想将它们分成不同的文件。怎么处理呢?

1 个答案:

答案 0 :(得分:0)

<强> A.H

#if !defined(FILE_A_H)
#define      FILE_A_H

template<class T>
class A
{
  template<class> friend class B;

  // ...
};

#endif

<强> B.h

#if !defined(FILE_B_H)
#define      FILE_B_H

template<class T> class B { /* ... */ };

#endif

请注意,如果尚未声明友元声明中使用的类的名称,则会在现场进行前向声明(请参阅http://en.cppreference.com/w/cpp/language/friend)。

进一步详情: