#ifndef LINKSHOW
#define LINKSHOW
typedef struct student
{
int num;
char sex;
}Per,* per;
#endif#ifndef LINKHEAD
#define LINKHEAD
typedef struct person
{
long int num;
char name[20];
char sex;
float scpre;
per  test;
}Stud;
#endifvoid main()
{
Stud * p= new Stud;
p->num=1000;
strcpy(p->name,"li lin");
p->sex='M';
p->scpre=2000; p->test->num=1000;    //????
p->test->sex='n';     //???? cout<<"The name:"<<p->name<<endl;
cout<<"The Num:"<<p->num<<endl;
cout<<"The sex:"<<p->sex<<endl;
cout<<"the score"<<p->scpre<<endl; cout<<"     \n";
cout<<p->test->num<<endl;//???
cout<<p->test->sex<<endl; //???? 

}

解决方案 »

  1.   

    #ifndef LINKSHOW
    #define LINKSHOW
    typedef struct student
    {
    int num;
    char sex;
    }Per,* per;
    #endif#ifndef LINKHEAD
    #define LINKHEAD
    typedef struct person
    {
    long int num;
    char name[20];
    char sex;
    float scpre;
    per  test;
    }Stud;
    #endif
    void main()
    {
    Stud * p= new Stud;
    p->num=1000;
    strcpy(p->name,"li lin");
    p->sex='M';
    p->scpre=2000;

    //Per *  test=new Per;
    p->test.num=1000;
    p->test.sex='n';  

    cout<<"The name:"<<p->name<<endl;
    cout<<"The Num:"<<p->num<<endl;
    cout<<"The sex:"<<p->sex<<endl;
    cout<<"the score"<<p->scpre<<endl; cout<<"     \n";
    cout<<p->test.num<<endl;
    cout<<p->test.sex<<endl;  

    }
    用结构变量,如上所示.
      

  2.   

    你上面的代码有问题吧,
    typedef struct person
    {
    long int num;
    char name[20];
    char sex;
    float scpre;
    per  test;     //你这里定义的是一个Per型的指针,最好把per改成Per,如果一定要用指针,最好用类,不要用结构,并且要重载类的拷贝函数
    }Stud;p->test.num=1000;   //这里你有两个错误,第一就是你的test指针没有初始话:p->tet=new Per;
    p->test.sex='n';    //第二就是你的.要改成->,比如:p->test->num=1000;
      

  3.   

    per  test;     //你这里定义的是一个Per型的指针,最好把per改成Per,如果一定要用指针,最好用类,不要用结构,并且要重载类的拷贝函数不明白你的意思,我如何来把#ifndef LINKSHOW
    #define LINKSHOW
    typedef struct student
    {
    int num;
    char sex;
    }Per,* per;
    #endif
    来作为一个类,又如何来并且要重载类的拷贝函数,我有点晕,请指教???
    类是否要这样定义
    class CPer
    {
       public:
             int GetNum(){return num;}
             char GetInt(){return sex}
          
       
       private:
        int num;
        char sex;}
      

  4.   

    我只是说你定义的结构
    typedef struct person
    {
    long int num;
    char name[20];
    char sex;
    float scpre;
    per  test;
    }Stud;
    中包含了Per型的指针test,为了更好的管理test指向的对象,用类来定义好管理test点,没有其他意思,大概就这样,没写完全:
    typedef class person
    {
        public:
             long int num;
    char name[20];
    char sex;
    float scpre;
    per  test;         
             
             person &operator=(person &a)
             {
                    //这里你自己写代码
             };}Stud;
      

  5.   

    TO:mengjjperson &operator=(person &a) 
    不明白此句的意思???麻烦解释一下???