模板有关问题

模板问题
template <typename T>
class AA
{
public:
int iNum;
};

class BB : public AA<BB>
{
public:
int iBB;
};
以上没有问题,但是,如果BB也是摸板类就不行了

template <typename TT>
class BB : public AA<BB>
{
public:
int iBB;
};

编译不过,该怎么写??

------解决方案--------------------
template <typename TT>
class BB : public AA<BB<TT> >
{
public:
int iBB;
};