C ++如何包含(循环依赖)
c++ how to include (circular dependency)?
我有 Environment.h 文件:
#include <windows.h>
#include "interfaces.h"
#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H
class Environment {};
#endif
我有接口.h文件:
#ifndef INTERFACES_H
#define INTERFACES_H
class IMoving {
public:
virtual void Move() = 0;
};
#endif
在界面中,我想获得一个环境类,知道如何移动
class IMoving {
public:
virtual void Move(Environment*) = 0;
};
如果我想这样做,我需要包括环境。
#include "Environment.h"
在这里我得到一个错误,becouse Environment.h - 包括 Interfaces.h 和 Interfaces.h - 包括 Environtment.h。那么如何让它工作呢?
很抱歉拼写错误
对于循环依赖,可以使用前向声明
在接口定义正上方的 Interfaces.h 中,向前声明Environment
如下所示:
class Environment;
然后,当您在类中实现 IMoving 时,您将在其实现 (cpp) 文件中包含 Environment.h。
您可以在此处阅读有关转发声明的更多信息。
看起来你拼错了几次类名(环境,环境)。这可能是您问题的根源吗?
否则,我通常使用转发声明
相关文章:
- C++GTKMM gui循环依赖关系
- 如何在头文件中声明类模板(由于循环依赖关系)
- 如何在具有循环依赖的类中dynamic_cast?
- C++模板方法中的循环依赖关系
- 修复循环依赖项 c++17 标头
- 涉及全局对象的循环依赖C++
- 循环依赖,在继承类的情况下使用覆盖方法
- Wt::D bo 中的循环依赖关系
- 在包含窗口标头时难以解决循环依赖关系问题
- 解决循环依赖关系 c++ 的想法
- C++循环依赖关系,未声明的标识符
- C++ 中的循环依赖关系问题
- 错误 C2512 视觉C++(并且不是循环依赖项)
- CMake 外部和内部静态库的循环依赖关系
- 正在从继承中解析循环依赖项
- "std::shared_ptr"循环依赖关系是如何导致问题的
- 纯引用而不是weak_ptr来打破循环依赖关系
- "invalid use of incomplete type" .解决循环依赖关系
- 如何避免模板方法的循环依赖
- 循环依赖结构,使用前向声明时结构的错误重定义