Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为模板类使用friend关键字_C++_Class_Templates_Friend - Fatal编程技术网

C++ 如何为模板类使用friend关键字

C++ 如何为模板类使用friend关键字,c++,class,templates,friend,C++,Class,Templates,Friend,假设我有两个模板类,A和B。如果我想让B成为A的朋友,我会说什么 class<template T> class A { public: friend class B<T>; // ??? }; class<template T> class B { }; 类 甲级 { 公众: B类朋友;/??? }; 班 B类 { }; 要使用符号,必须声明或定义它,这在模板中是相同的。您需要转发声明模板B。另外,声明模板类的语法(class)无效,应该是temp

假设我有两个模板类,A和B。如果我想让B成为A的朋友,我会说什么

class<template T>
class A
{
public:
friend class B<T>; // ???


};

class<template T>
class B
{

};
类
甲级
{
公众:
B类朋友;/???
};
班
B类
{
};

要使用符号,必须声明或定义它,这在模板中是相同的。您需要转发声明模板
B
。另外,声明模板类的语法(
class
)无效,应该是
template

这应该起作用:

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
{

};
template//typename可以替换为class
乙级;;
模板
甲级
{
公众:
B级朋友;
};
模板
B类
{
};