转: 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"
本文探讨了在C++中使用hpp文件时遇到的多重定义错误,并提供了两种有效的解决方法:一是将函数定义分离到单独的cpp文件中;二是利用inline关键字在hpp文件内直接定义函数,以避免重复定义的问题。
1151

被折叠的 条评论
为什么被折叠?



