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

时间:2013-10-07 02:14:23

标签: c++ class templates friend

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

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


};

class<template T>
class B
{

};

1 个答案:

答案 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
{

};