注: 此为英文笔记,如需翻译请私信或留评论
Normally, we forward declare a class like following.
class T1;
class T2 {
T1* t1;
};
However, for class which is in a namespace the above way doesn’t work. We need instead:
namespace n1 {class T1;}
class T2 {
n1::T1* t1;
};
To forward declare a type in multiple level of namespaces:
namespace n1
{
namespace n2
{
//....
namespace nN
{
class T1;
}
//....
}
}
class T2 {
n1::n2::...::nN::T1* t1;
};