C++用了这么多年,这个却第一次知道,以前没用过hpp
这样:
// foo.hppvoid foo() { /* body */ }// a.cpp#include "foo.hpp"// b.cpp#include "foo.hpp"出现错误:mutiple definition
解决办法1:
// foo.hppvoid foo();// foo.cppvoid foo(){ /* body */}// a.cpp#include"foo.hpp"// b.cpp#include"foo.hpp"
办法2:
添加 inline 关键字
// foo.hppinlinevoid foo(){ /* body */}// a.cpp#include"foo.hpp"// b.cpp#include"foo.hpp"
参见: