在类a里面嵌套类b,然后类b里面嵌套了个类c。这个类c的成员如何访问

在类a里面嵌套类b,然后类b里面嵌套了个类c。这个类c的成员怎么访问
template<typename elemtype>
class Mypolm//类a
{
public:
class LinkNode//类b
{
public:
class data//数据项既包含系数又包含指数,用一个类来定义,类c
{
public:
float coef;
int expn;
};
LinkNode *next;
};
typedef LinkNode * NodePointer;
void init();
Mypolm();
virtual ~Mypolm();
Mypolm(const Mypolm<elemtype>& otherL);
  Mypolm<elemtype> operator=(Mypolm<elemtype> rightL);
};

template<typename elemtype>
void Mypolm<elemtype>::init()
{
NodePointer p;
NodePointer r;
p=new LinkNode;
float coef_in;
cout<<"coef:"<<endl;
cin>>coef_in;
// p->data.coef=coef_in;

}

这些构造函数什么的都不说了,就是我定义的初始化函数init(),为何老是说这个p->data.coef不可以啊,书上貌似也是这样子来访问的。
我现在没见过类里面套类在套类的。

高人指点一下,怎么访问才不出错。
如果没p->data.coef,这一语句,程序是没错的,我试过了。


------解决方案--------------------
Mypolm::LinkNode::data是一个class,不是一个class object,一个nonstatic member的访问,必须要绑定到一个class object上才行。

在LinkNode里面声明一个data的class object

data d;

这样访问即可:

p->d.coef