1
4
和
大多数编译器(gcc、VC)也接受
编辑:
目前对于C++0x仍然是相同的。 所以我会坚持第一种老式的方法;-) |
2
3
你似乎已经发布了一个
相反,您需要使用指向
由于循环性被破坏,并且您只使用了对对象的引用,因此您不需要拥有所引用类型的完整定义,并且可以使用前向声明。 Include guards对用户很好,但在开发时尽量不要依赖它们。如果编译器必须检查是否包含了某些内容,那么即使它对guards/pragmas进行了优化,它仍在工作。您确实需要了解什么取决于打破最初的循环,而在文件上设置防护并不能帮助您做到这一点。 |
3
2
你的头上有防护罩吗?上面的代码递归地包含a.h和b.h,因此定义了一整组头。
远期宣言
|
4
2
如果一个类是前向声明的,并且您只使用指向该类成员的指针或引用,则不需要包含该类的头。另一个文件中的类也是如此。但是,请确保在所有头文件中使用include-guard(
|
5
0
你有一个
|
Daniel Viaño · 将函数移动到不同的文件 7 年前 |
Trojax · 编译多个。c和。h文件 7 年前 |
Stevoisiak · 为什么#包含打破全局变量? 7 年前 |
jaxonjma · 在另一个JSP中动态发送并包含JSP 7 年前 |