假设我有一个模板化的类,无论出于什么原因超出了这个问题的范围,它都有一个嵌套的类声明:
// outer.hpp
template <typename T>
class Outer
{
class X;
void foo(); // this is defined in an ipp file
};
// should this also go into the ipp file?
template <typename T>
class Outer<T>::X
{
};
我对我应该放置X
的定义感到有些困惑。它是否与成员函数定义一起属于ipp
文件,或者它是否在头文件中有意义?
答案 0 :(得分:0)
为了清楚起见,就编译而言,它并不重要。
通常,所有声明都应该在标题中,因为这将保持可以在标题中找到类的用法的模式。
例如,如果您使用Doxygen,您将需要它生成有关内部类的文档(无需更改设置)。