C++中的内联函数

Fla*_*ash 5 c++

Hii,

我是C++的新手.我确实阅读过有关内联函数的内容并正确理解它们.但是这个站点说"如果我们在一个.cpp文件中写入内联函数的定义并从另一个文件调用它,我们得到一个'未解决的外部'错误....为什么会这样......?这可以做到正常功能正确...如果我错了请纠正我...

谢谢

CB *_*ley 11

这是语言要求.inline意味着您可以在多个翻译单元中定义该功能,但定义必须相同,并且您必须在使用该功能的每个翻译单元中都有一个定义.

这些都是规则.规则允许(但不要求)编译器inline在每个调用站点扩展函数的代码,并省略发出可调用的函数版本.

这与非inline功能不同,非功能必须仅在所有翻译单元中定义一次.这是通常的"一个定义规则",适用于C++中的大多数实体.

inline不会改变函数的链接.inline默认情况下,函数具有外部链接,因此如果staticinline函数内部使用变量,则实现必须确保程序中只有该变量的一个副本.

  • 如果你需要在多个cpp文件中,最好将它们放在标题中,而不是多次实现它们. (3认同)