如果我有一個模板類中定義爲:如何單獨的定義和兒童模板類的聲明
#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解決方案對其他人很有用。