假设我有两个模板类A和B。如果我想让B成为A的友元,我应该怎么说?
class<template T>
class A
{
public:
friend class B<T>; // ???
};
class<template T>
class B
{
};
要使用符号,必须先声明或定义它,在模板中也是如此。您需要预先声明模板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
{
};