有在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