CStudent *stu;
*stu=CStudent("1","张三",90,89,80,72);
其中:
class CStudent
{
public:
char *ID,*name;
    float a,b,c,d,ave;
public:
CStudent(){};
CStudent(char*,char*,float,float,float,float);
~CStudent(){};
         void display(){cout<<name<<" "<<ave<<"\n";};
};
编译可以通过,但是运行总是出现异常,请教各位大侠这是为什么

解决方案 »

  1.   

    CStudent *stu;
    *stu=CStudent("1","张三",90,89,80,72);这里就肯定出错了。==>
    CStudent *stu = new CStudent("1","张三",90,89,80,72);
    这就OK了。
    你那么写,
    首先
    CStudent* stu;这个指针没有初始化,也没有为它分配内存
    *stu的结果只能是出错。
      

  2.   

    *stu=CStudent("1","张三",90,89,80,72);
    指向一个栈变量,是一个RValue,只可读。这个在C++ Primer 里面有详细的讲解。换成*stu=new CStudent("1","张三",90,89,80,72);
      

  3.   

    换成stu=new CStudent("1","张三",90,89,80,72);
      

  4.   

    *stu=new CStudent("1","张三",90,89,80,72);