.inc文件通常与模板类和函数相关联。
标准类和函数是通过.h文件声明并通过.cpp文件定义的。但是,模板既不是类也不是函数,而是用于生成一组类或函数的模式。为了让编译器生成模板的代码,它需要看到声明和定义,因此两者都必须包含在.h文件中。
为了保持声明和定义的分离,将定义放在自己的文件中,并在.h文件的末尾进行包含。这个文件可能有多个可能的文件扩展名,如.inc、.imp、.impl、.tpp等。
声明示例:
// Foo.h
#ifndef FOO_H
#define FOO_H
template
class Foo {
public:
Foo();
void DoSomething(T x);
private:
T x;
};
#include "Foo.inc"
#endif // FOO_H
定义示例:
// Foo.inc
#include "Foo.h"
template
Foo
// ...
}
template
void Foo
// ...
}