#include <../header.h> 在 C++ 中是一种不好的做法吗?
Is #include <../header.h> a bad practice in C++?
我的 c++ 项目总的来说由两个目录组成,当然还有 main.cpp
:
Dataloader
包含 dataloader.h 和 dataloader.cpp
Analysis
包含 analysis.h 和 analysis.cpp
在dataloader.h中我包含了analysis.h如下:
#include<../Analysis/analysis.h>
我的教授告诉我这是一个很大的不!!!!我们试图创建一个 makefile,他很惊讶。为什么这是一个不好的做法?以及如何使包含更简单。我正在研究 code::blocks
和 gcc 4.8 编译器。
N.B. I noticed that code::blocks some how forgives include errors. When
we tried to compiled it by using gcc command it went bad
我同意你教授的观点。使用
#include<../Analysis/analysis.h>
使代码变得脆弱。如果使用不同的目录结构重新组织代码库,包含此类 #include
语句的文件将无法编译。
关于:
N.B. I noticed that code::blocks some how forgives include errors. When we tried to compiled it by using gcc command it went bad
将 -I.
添加到编译器标志以解决该问题。
好吧,我一直被教导,这是有道理的,你应该把你的包含放在依赖于它们的文件中。
所以在你的情况下,我假设你使用 dataloader
来导入数据,然后 analysis
来分析它。那么在这种情况下,将这两个都包含在 main 中更有意义。
相比之下,我制作了一个包含 print_board()
功能的 n by n tic tac toe 游戏。此函数依赖于带有常量 colors.h
的头文件来正确打印电路板。所以在这种情况下,我的 print_board.h
文件包含 colors.h
文件更有意义,因为它直接依赖它,没有别的。
我的 c++ 项目总的来说由两个目录组成,当然还有 main.cpp
:
Dataloader
包含 dataloader.h 和 dataloader.cppAnalysis
包含 analysis.h 和 analysis.cpp
在dataloader.h中我包含了analysis.h如下:
#include<../Analysis/analysis.h>
我的教授告诉我这是一个很大的不!!!!我们试图创建一个 makefile,他很惊讶。为什么这是一个不好的做法?以及如何使包含更简单。我正在研究 code::blocks
和 gcc 4.8 编译器。
N.B. I noticed that code::blocks some how forgives include errors. When we tried to compiled it by using gcc command it went bad
我同意你教授的观点。使用
#include<../Analysis/analysis.h>
使代码变得脆弱。如果使用不同的目录结构重新组织代码库,包含此类 #include
语句的文件将无法编译。
关于:
N.B. I noticed that code::blocks some how forgives include errors. When we tried to compiled it by using gcc command it went bad
将 -I.
添加到编译器标志以解决该问题。
好吧,我一直被教导,这是有道理的,你应该把你的包含放在依赖于它们的文件中。
所以在你的情况下,我假设你使用 dataloader
来导入数据,然后 analysis
来分析它。那么在这种情况下,将这两个都包含在 main 中更有意义。
相比之下,我制作了一个包含 print_board()
功能的 n by n tic tac toe 游戏。此函数依赖于带有常量 colors.h
的头文件来正确打印电路板。所以在这种情况下,我的 print_board.h
文件包含 colors.h
文件更有意义,因为它直接依赖它,没有别的。