假设我有2个模板类,A和B.如果我想让B成为A的朋友,我会说什么?
class<template T>
class A
{
public:
friend class B<T>; // ???
};
class<template T>
class B
{
};
答案 0 :(得分:2)
要使用符号,必须声明或定义符号,这在模板中是相同的。您需要转发声明模板B
。另外,声明模板类的语法(class<template T>
)无效,它应该是template <class T>
。
这应该有效:
template <typename T> // typename can be replaced with class
class B;
template <typename T>
class A
{
public:
friend class B<T>;
};
template <typename T>
class B
{
};