这是一个品味问题,但前向声明通常是包含在头文件中的一个很好的替代方案,即使没有循环依赖。(我不想在这个地方对此进行讨论。)所以,这里有一个关于如何为您的问题应用前向声明的示例:
在 Manager.h 中:
// Forward declaration:
class Specialist;
// Class declaration:
class Manager
{
// Manager declarations go here.
// Only pointers or references to
// the Specialist class are used.
};
在 Manager.cpp 中:
#include "Manager.h"
#include "Specialist.h"
// Manager definitions/implementations
// using the Specialist class go here.
// Full Specialist functionality can be used.
在专家.h 中:
// Forward declaration:
class Manager;
// Class declaration:
class Specialist
{
// Specialist declarations go here.
// Only pointers or references to
// the Manager class are used.
};
在Specialist.cpp 中:
#include "Specialist.h"
#include "Manager.h"
// Specialist definitions/implementations
// using the Manager class go here.
// Full Manager functionality can be used.