关于类的声明顺序的问题,请高手指教!
如下几个类的声明:
//Personnel 系列
class Personnel
{
public:
virtual ~Personnel() = 0;
virtual void Pay() = 0;
virtual void Promote() = 0;
virtual void Accept(PersonnelV&) = 0;
protected:
Personnel();
};
class Officer : Personnel
{
public:
virtual void Pay();
virtual void Promote();
virtual void Accept(PersonnelV&);
};
class Captain : Officer
{
public:
virtual void Pay();
virtual void Promote();
virtual void Accept(PersonnelV&);
};
class First : Officer
{
public:
virtual void Pay();
virtual void Promote();
virtual void Accept(PersonnelV&);
};
//PersonnelV 系列
class PersonnelV
{
public:
virtual ~PersonnelV() = 0;
virtual void Visit(Personnel&) = 0;
virtual void Visit(Officer&) = 0;
virtual void Visit(Captain&) = 0;
virtual void Visit(First&) = 0;
protected:
PersonnelV();
};
class DoSomeThing : PersonnelV
{
public:
DoSomeThing();
~DoSomeThing();
virtual void Visit(Personnel&);
virtual void Visit(Officer&);
virtual void Visit(Captain&);
virtual void Visit(First&);
};
以上声明中,两个系列的类中都包含对方的实例,这样的话不管哪个放在前面哪个放在后面编译时都说找不到另一方………(Visual Studio.NET环境),不知该如何解决,请高手指教!