关于类成员函数定义的有关问题

关于类成员函数定义的问题
class   admin
{
private:
typedef   struct   tagallsubjects
{   char   subject[100];
    unsigned   int   ID;
    struct   tagallsubjects   *next;
}allsubjects;

allsubjects   *head_allsubjects,*p_allsubjects,*tail_allsubjects;   //建立类内的全局指针

public:

admin();
~admin();

void   showallsubjects();                   //查看当前设置的全部科目
allsubjects*   addallsubjects();                     //添加全部科目
allsubjects*   delallsubjects();                     //删除全部科目中的一科
};

allsubjects*   admin::addallsubjects()               *
{
cout < < "这里是添加预设所有科目的地方,如果科目没有添加,则在整个系统中没有该科目 " < <endl;
admin::showallsubjects();
char   subject[100],ch;
cin> > subject;

while(subject!=NULL)
{
.......
}
在上面的*行,编译提示:

\vc23475335\ex3\admincode.cpp(255)   :   error   C2143:   syntax   error   :   missing   '; '   before   '* '       这个怎么回事,怎么会缺医少;
\vc23475335\ex3\admincode.cpp(255)   :   error   C2501:   'allsubjects '   :   missing   storage-class   or   type   specifiers     这句话怎么翻译
\vc23475335\ex3\admincode.cpp(256)   :   error   C2501:   'addallsubjects '   :   missing   storage-class   or   type   specifiers
\vc23475335\ex3\admincode.cpp(256)   :   error   C2556:   'int   *__thiscall   admin::a

上面的addallsubjects定义的是返回一个在类内已经定义好的结构体指针,难道这个样定义有问题吗?

请大家帮我看一下,谢谢

------解决方案--------------------
这样
allsubjects* admin::addallsubjects() ==>
admin::allsubjects* admin::addallsubjects()
------解决方案--------------------
你的代码里调用了admin::showallsubjects(void),但是linker找不到对admin::showallsubjects(void)的实现。


把函数 showallsubjects(void) 写好就行了