Bun*_*ori 51 c++ architecture software-design
关于如何避免头文件的循环依赖,你有什么好建议吗?
当然,从一开始,我就尝试尽可能透明地设计项目.但是,随着越来越多的功能和类的添加,以及项目变得不那么透明,循环依赖开始发生.
是否有任何通用,经过验证和工作的规则?谢谢.
Art*_*yom 50
如果你有循环依赖,那么你做错了.
例如:
foo.h
-----
class foo {
public:
bar b;
};
bar.h
-----
class bar {
public:
foo f;
};
Run Code Online (Sandbox Code Playgroud)
你可能想要非法的:
foo.h
-----
class bar; // forward declaration
class foo {
...
bar *b;
...
};
bar.h
-----
class foo; // forward declaration
class bar {
...
foo *f;
...
};
Run Code Online (Sandbox Code Playgroud)
这没关系.
通用规则:
jon*_*son 16
#include "myclass.h"
第一包括myclass.cpp
.为了避免循环依赖,我遵循的一些最佳实践是,