inline解决 error lnk2005

h文件中有个普通函数(非类成员)有实现代码,被多个h使用,编译时提示error lnk2005,加入inline 解决。

声明为内嵌函数,编译时类似宏一样直接替换至调用代码段进行编译,不会产生全局连接符号,所以不会产生lnk2005。

类的成员函数在.h中短代码的实现,编译器经常自动加入inline进行编译。

例如:Get()这样短小的函数放在h文件中

class A

{

pubic:

int Get()

{

return m_nSize;

}

private:

int m_nSize;

}

详百度inline和宏的原理。

inline由空间换取时间的提高效率方法,造成目标文件过大,适合短小调用频繁的函数,不过对现在的硬盘来说,基本差不多。

你可能感兴趣的:(inline解决 error lnk2005)