C++之INL文件的使用

#ifndef BASECLASS_H

#define BASECLASS_H

#include <iostream>
using namespace std;

class BaseClass
{
public:
    BaseClass();

    void inlineFun();
};

#include "BaseClass.INL"
// 引入文件和下面这种直接写一样
//inline void BaseClass::inlineFun()
//{
//    cout << __FUNCTION__;
//}

#endif // BASECLASS_H

#ifndef BASECLASS_INL
#define BASECLASS_INL

inline void BaseClass::inlineFun()
{
    cout << __FUNCTION__;
}
#endif // BASECLASS_INL

为啥要加入这个文件呢,直接在头文件里面写不就行了吗??

如果内联函数的定义比较短小, 逻辑比较简单, 实现代码放在 .h 文件里没有任何问题. 比
如, 存取函数的实现理所当然都应该放在类定义内. 出于编写者和调用者的方便, 较复杂的
内联函数也可以放到 .h 文件中, 如果你觉得这样会使头文件显得笨重, 也可以把它萃取到
单独的 -inl.h 中. 这样把实现和类定义分离开来, 当需要时包含对应的 -inl.h 即可。
-inl.h 文件还可用于函数模板的定义. 从而增强模板定义的可读性.

上一篇:根据中序和后序还原二叉树


下一篇:UVA - 548 Tree