可能重复:
什么是 C++ 中的前向声明?
我只是对这个简单示例中的一段代码在做什么有疑问。我查找了朋友类并了解它们是如何工作的,但我不明白顶部的类声明实际上在做什么(即机器人)。这是否只是意味着 Happy 类可以使用 Robot 对象,但他们不能访问其私有部分,任何信息都将不胜感激。
#include <stdlib.h>
#include <stdexcept>
template <typename T> // What is this called when included
class Robot; // is there a special name for defining a class in this way
template <typename T>
class Happy
{
friend class Joe<T>;
friend class Robot<Happy<T> >;
// ...
};