【发布时间】:2016-10-26 01:01:53
【问题描述】:
所以基本上我的教授给了我们班上的学生,并告诉我们实现所有功能并为该功能编写一个 main。我正在尝试这样做,但我无法找出正在出现的错误,在我的所有访问器函数中,它告诉我 nCredits、gpa 和 s 未在范围内声明。我认为这与第二个构造函数有关,但我不确定到底是什么问题。第二个构造函数和 displayStRec 函数也提供给我们的类,我只是不知道如何将成员函数中的变量按原样重命名。
#include <iostream>
using namespace std;
class student
{
public:
student();
student(string s, double gpa, int nCredits);
~student(); //destructor
void changeCredits(int nCredits);
int getCredits();
void changeGPA(double gpa);
double getGPA();
void displayStRec();
private:
string name;
double GPA;
int credits;
};
student::student()
{
name = "No name yet";
GPA = 0;
credits = 0.0;
cout << "Default constructor entered!" << endl;
}
student::student(string s, double gpa, int nCredits)
{
name = s;
GPA = gpa;
credits = nCredits;
cout << "Second constructor entered!" << endl;
}
void student::changeCredits(int nCredits){
cout << "Enter credits earned:" << endl;
cin >> nCredits;
}
int student::getCredits(){
return nCredits;
}
void student::changeGPA(double gpa){
cout << "Enter GPA: " << endl;
cin >> gpa;
}
double student::getGPA(){
return gpa;
}
void student::displayStRec()
{
cout << " Name: " << s <<endl;
cout << " GPA: " << gpa <<endl;
cout << "Credits: " << nCredits <<endl;
}
student::~student()
{
cout << "Destructor entered!" << endl;
}
int main()
{
student s1,s2("John",4.0,42);
s2.changeCredits(nCredits);
s2.getCredits();
s2.changeGPA(gpa);
s2.getGPA();
s2.displayStRec();
return 0;
}
【问题讨论】:
-
您的变量名拼写错误。您有一个私人
credits成员,但没有nCredits成员。紧跟在private之后。 -
你应该改用成员变量。
-
抱歉,c++ 区分大小写,不会读心
-
我知道我有学分和 nCredits,但任务应该是这样的。第二个构造函数给了我们,它改变了 credits = nCredits 等。成员函数原型也给了使用,所以我必须使用给我错误的重命名的数据类型。任何有关如何执行此操作的帮助将不胜感激。
-
但是你没有
nCredits和gpa的会员数据