3

A と B の 2 つのテンプレート クラスがあるとします。B を A のフレンドにしたい場合は、どうすればよいでしょうか?

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


};

class<template T>
class B
{

};
4

1 に答える 1

2

シンボルを使用するには、宣言または定義する必要があります。これはテンプレートでも同じです。template を宣言する必要がありますB。また、テンプレート クラスを宣言するための syntax( 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
{

};
于 2013-10-07T02:18:19.850 に答える