有在a question about header ordering一个高度评价响应与以下建议:头,不cpp文件,并包括订购
良好做法:每个.h文件中应该有一个.cpp包括别的之前.H第一。这证明任何.h文件都可以放在第一位。
即使头部不需要实施,请一个.cpp,仅仅包括.h文件中,并没有别的。
就我个人而言,我从来没有遇到包含没有相应cpp文件的头文件排序的问题。这种最佳做法会阻碍什么样的问题?
有在a question about header ordering一个高度评价响应与以下建议:头,不cpp文件,并包括订购
良好做法:每个.h文件中应该有一个.cpp包括别的之前.H第一。这证明任何.h文件都可以放在第一位。
即使头部不需要实施,请一个.cpp,仅仅包括.h文件中,并没有别的。
就我个人而言,我从来没有遇到包含没有相应cpp文件的头文件排序的问题。这种最佳做法会阻碍什么样的问题?
#ifndef
等...这两个将确保顺序无关紧要。它解决了
这些对我来说似乎也是重要的事情。这听起来像“每个头一个CPP”的做法是多余的,如果你已经遵循CPP最佳做法。 – Kai 2012-04-06 17:15:55
的一个问题是允许.h文件被LINTED(由我皮棉工具至少)。没有.cpp做一个包含.h我的模板代码会跳过。
这可以防止一个问题,如果两个头文件中都有相同的命名定义(无论何种原因),或者如果一个头包括另一个和头部没有'的#ifndef HEADER_H的#define HEADER_H'在里面。 – twain249 2012-04-06 17:07:09
这种做法可确保每个头都列出了所有的依赖关系。头文件使用'std :: vector'是很常见的,但不包含'',并且永远不会注意到,因为在它们之前总是会包含一个标头,_did_包含''。我见过很多,特别是在这个网站上。 –
2012-04-06 17:34:35