是否可以在多个头文件中拆分类
Is it ok to split classes in multiple header files?
我有一个由几个函数和很多运算符组成的类。几乎所有函数和运算符都使用模板,这就是我在头文件中实现它们的原因。这使得很难在代码中找到某些内容,因此我决定将所有运算符移动到单独的头文件中。
现在我有这样的东西:
fstring.h
class fstring{
...
#include "fstring_operators.h"
}
和fstring_operators.h
...
template<int RSIZE>
bool operator==(const fstring<RSIZE>& rhs) const {
return equals(rhs._chars, RSIZE);
}
...
做这样的事情可以吗?我还省略了 fstring_operators.h 的标头保护,因为它不能包含在除 fstring.h 之外的任何地方
虽然我以前在生产代码中看到过这种情况,但我不太同意这种风格,原因有两个:
1) 您希望在标头中完全定义class
。您不需要查看其他标头即可找到您要查找的内容。
2)您可以在其他地方包含另一个标题。即使没有警卫,也不能保证它不起作用。
我认为您应该将方法定义为自由函数。 然后,您可以在常规头文件的底部 #include,这是许多C++库使用的做法(其中一些会使运算符文件名以 .i 或 .inl 或其他内容结尾)。
如果你这样做,似乎很好。 你在OP中编写的方式有点奇怪,即使它有效,也可能会抛弃一些代码的维护者,甚至可能抛弃一些开发工具。
相关文章:
- 如何拆分文件中.txt字母并使用c ++使用数组进行扑克?
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 如何在拆分为多个文件的分层 SM 中退出子机器?(使用boost::MSM)
- 如何通过在逗号处拆分将文件读入 2D 列表
- 读取行文本文件,如果它得到逗号,则拆分
- 将 c++ 代码拆分为多个文件
- 从文件中逐块读取,然后逐行拆分测试
- 如何使用 c++ 逐行处理文本文件并将其参数拆分为变量?
- C++ 将类拆分为多个文件.当我指定类型时假定显式类型 int
- 如何将程序拆分为文件C 类
- 从文件中获取字符串并将其拆分
- C++强力球 - 文件拆分和错误(游戏类型)
- 按代码 c 拆分文件时出错
- 分析示例文本文件并将其拆分
- 如何将XML文件拆分为多个XML,以便每个新文件只包含原始文件中的一个文本节点
- 将大型数据文件拆分为多个小文件(文本格式)
- 将文本文件拆分为多个文件 c++
- 将一个文件拆分为多个文件
- 我应该始终将文件拆分为声明(.h)和定义(.cpp)吗
- 如何将数据文件拆分为多个部分