C++ 库研究笔记——通过inline避免hpp 的mutiple definition 错误

C++用了这么多年,这个却第一次知道,以前没用过hpp

这样:

 

// foo.hpp

void 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"

参见:

Inline keyword in member function definition

a multiple definition error in c++

 

 



 

你可能感兴趣的:(init)