error C2046:term does not evaluate to a funtion
笔者在使用构造函数时,忽略了只能构造一次的原因
查知,这个错误的主要原因:
把非函数,当成函数了
这里先放出正确代码
正确的学生类
class Student//学生类
{
public:
int Num;
string name;
Student();//构造函数
Student(int d,string e,int a,int b,int c);
void Sum();
void print();
void modify();
};
正确的构造函数实现
Student::Student()//Student初始赋值
{
name=" ";
Num=0;
myScore.Chinese=0;
myScore.English=0;
myScore.Math=0;
Sum();
}
Student::Student(int d,string e,int a,int b,int c)//Student再赋值
{
name=e;
Num=d;
myScore.Chinese=a;
myScore.English=b;
myScore.Math=c;
}
正确的使用时,应当考虑只能初始构造使用一次这个因素,所以后面使用还是乖乖的把更改数据的代码再打一遍把QWQ。
modify定义函数
void Student::modify()//定义函数
{
int d;
string e;
int a;
int b;
int c;
cout<<"请输入学生的姓名:"<<endl;
cin>>e;
cout<<"请输入学生的学号:"<<endl;
cin>>d;
cout<<"请输入学生的语文成绩:"<<endl;
cin>>a;
cout<<"请输入学生的英语成绩:"<<endl;
cin>>b;
cout<<"请输入学生的数学成绩:"<<endl;
cin>>c;
name=e;
Num=d;
myScore.Chinese=a;
myScore.English=b;
myScore.Math=c;
Sum();
}
这里说一下我的错误:
void Student::modify(Student gg)
int d;
string e;
int a;
int b;
int c;
cout<<"请输入学生的姓名:"<<endl;
cin>>e;
cout<<"请输入学生的学号:"<<endl;
cin>>d;
cout<<"请输入学生的语文成绩:"<<endl;
cin>>a;
cout<<"请输入学生的英语成绩:"<<endl;
cin>>b;
cout<<"请输入学生的数学成绩:"<<endl;
cin>>c;
gg(d,e,a,b,c);
}
注意,这里定义的gg,出来时已经被构造一次,无法在modify函数中再构造一次
然后我在类里的就错误的写成了(代码定义类的上下省略)
......
void modify(Student a)
......
最后呢,笔者用gg来作为类,因为笔者这个程序是先寄为敬,在这里感谢@蓝嘤大佬的指正,大家也可以去他的主页学习优质文章