缺少一个=出现的问题

错误1:赋值、写成了等于;
新手上路:
 
 
 最近,学习C++,完全是新手上路,结果问题百出,今天出现了如下所示错误:
 
题目:用字符指针、面向对象的方法,输入学生的学号、姓名、成绩,并输出90分以上的同学的信息;
 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 
 7 class Student
 8 {
 9 public :
10     void input (int pid ,char *pname ,float s);
11     void display () const;
12     ~Student();
13 private :
14     int id ;
15     char *name;
16     float score;
17 };
18   void Student::input(int pid ,char *pname,float s)
19 {
20     id =pid ;
21     score =s;
22     name =new char [strlen(pname)+1];
23     if (name = NULL)
24     {
25     cerr<<"动态分配存储错误!"<< endl;
26     exit(EXIT_FAILURE);
27     }
28     strcpy(name,pname);
29 }
30 void Student::display()const 
31 {
32 if (score >= 90)
33 cout << id <<"	"<<name <<"	"<<score<<endl;
34 }
35 Student::~Student()
36 {
37 cout << "析构对象student"<<endl;
38 delete [] name;
39 }
40 int main ()
41 {
42 int n ;
43 cout <<"请输入学生人数:";
44 cin >> n;
45 
46 int i ,id;
47 float score;
48 char name[10];
49 Student *pStu =new Student[n];
50 if (pStu == NULL)
51 {
52 cerr <<"动态分配存储错误!"<<endl;
53 abort ();
54 }
55 for (i= 0;i<n;i++)
56 {
57 cout <<"请输入学号、姓名、成绩:";
58 cin >> id >> name >> score;
59 pStu[i].input(id,name,score);
60 }
61 
62 cout << "输出数据:"<<endl;
63 cout <<"学号"<<"	姓名"<<"	成绩"<<endl;
64  for (i= 0;i<n;i++)
65      pStu[i].display();
66     delete [] pStu;
67  return 0;
68 }


  编译通过,调试过程出现错误,错误产生的原因是,少了一个==,应该如下:

if (name == NULL)

作为一个新手,一定要认真,避免这种微小的错误,造成的损失;继续前行······

 
 
原文地址:https://www.cnblogs.com/lwflourish/p/4096552.html