当前位置:编程学习 > C/C++ >>

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.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++
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,