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

2014-11-23 22:08:39 ? 作者: ? 浏览: 3
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++
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: