我有Environment.h 文件:
#include <windows.h>
#include "interfaces.h"
#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H
class Environment {};
#endif
我有 Interfaces.h 文件:
#ifndef INTERFACES_H
#define INTERFACES_H
class IMoving {
public:
virtual void Move() = 0;
};
#endif
在界面 IMoving 中我想获得一个环境类,以了解如何移动
class IMoving {
public:
virtual void Move(Environment*) = 0;
};
如果我想这样做,我需要包含environment.h
#include "Environment.h"
在这里我收到一个错误,因为Environment.h - 包括Interfaces.h 和Interfaces.h - 包括Environtment.h。那么如何让它发挥作用呢?
抱歉拼写错误
For 循环依赖可以使用前向声明
在接口定义上方的 Interfaces.h 中,转发声明Environment
如下:
class Environment;
然后,当您在类中实现 IMoving 时,您将在其实现 (cpp) 文件中包含 Environment.h。
您可以阅读有关前向声明的更多信息here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)