这是什么实现内联函数对.cpp文件
//Foo.h
struct Foo {
void bar() {
//lots of complex statements
}
};
这
//Foo.h
struct Foo {
void bar();
};
//Foo.cpp
inline void Foo::bar() {
//lots of complex statements
}
之间的实际差异是否有任何在最后的这两种方法编制的任何差异程序还是保证是相同的?
请根据哪些人应该选择哪些方面以及为什么使用良好的编码实践/经验做出一些评论。注意“很多复杂的陈述”。任何具体的情况下,这些东西应该实际上在头文件中? AFAIK,大部分的升级版本库都只有标题 - 他们为什么选择这样做?
“在最终编译的程序中是否存在任何差异” - 差异**存在**,标题中的函数可以在每个翻译单元中内联。 – Csq 2013-02-10 13:18:17
@Csq:好的,我刚刚注意到第二种情况下的定义是在cpp文件中..ahh无赖。你是对的。 – 2013-02-10 13:21:06
@Csq和Alok保存:所以问题是头中函数定义的结束程序会比另一个更大,因为函数代码将在每个翻译单元中,而编译器很可能会忽略内联请求如果函数定义在.cpp文件中?这是你想要创造的点吗? – user2015453 2013-02-10 13:57:30