文件包含模板类A和模板类B. A是B的朋友。
我想将它们分成不同的文件。怎么处理呢?
答案 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)。
进一步详情: