C++用了這麼多年,這個卻第一次知道,以前沒用過hpp 這樣:
// foo.hpp void foo() { /* body */ } // a.cpp #include "foo.hpp" // b.cpp #include "foo.hpp"
出現錯誤:mutiple definition 解決辦法1: // foo.hpp void foo(); // foo.cpp void foo() { /* body */ } // a.cpp #include "foo.hpp" // b.cpp #include "foo.hpp" 辦法2: 添加 inline 關鍵字 // foo.hpp inline void foo() { /* body */ } // a.cpp #include "foo.hpp" // b.cpp #include "foo.hpp" 參見: Inline keyword in member function definition a multiple definition error in c++