相关疑难解决方法(0)

为什么标题中的C++内联函数?

注意:这不是关于如何使用内联函数或它们如何工作的问题,更多的是为什么它们按照它们的方式完成.

类成员函数的声明不需要定义函数inline,它只是函数的实际实现.例如,在头文件中:

struct foo{
    void bar(); // no need to define this as inline
}
Run Code Online (Sandbox Code Playgroud)

那么,为什么一类功能的内嵌实施是在头文件?为什么我不能把内联函数放在.cpp文件中?如果我在哪里尝试将内联定义放在.cpp文件中,我会得到一个错误:

error LNK2019: unresolved external symbol 
"public: void __thiscall foo::bar(void)"
(?bar@foo@@QAEXXZ) referenced in function _main 
1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe 
: fatal error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)

c++ theory language-design inline c++-faq

109
推荐指数
7
解决办法
9万
查看次数

C++中的内联函数

Hii,

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

谢谢

c++

5
推荐指数
1
解决办法
1492
查看次数

标签 统计

c++ ×2

c++-faq ×1

inline ×1

language-design ×1

theory ×1