如果我有一个模板类中定义为:如何单独的定义和儿童模板类的声明
#ifndef A_HPP
#define A_HPP
template<class T>
class A
{
public:
int doSomething(int in, bool useFirst);
private:
template<int CNT>
class B
{
public:
int doSomething(int in);
};
B<2> first;
B<3> second;
};
#include "a_imp.hpp"
#endif
现在,我可以去了解其在实现头文件A::doSomething
的声明这样
#ifndef A_IMP_HPP
#define A_IMP_HPP
template<class T>
int A<T>::doSomething(int in, bool useFirst)
{
if (useFirst)
return first.doSomething(in);
return second.doSomething(in);
}
#endif
但是我不知道我是如何去做儿童类的方法的声明。是否甚至有可能或者我必须做其他两种方法之一,我可以想到这样做,即定义主标题中的方法或声明A以外的类。
请注意,我使用C++ 11,所以如果这只是可行的,它仍然适用于我,尽管C++ 98解决方案对其他人很有用。