如何创建成绩类变量的数组。我不明白如何在main()
初始化和写什么。从这个,有没有办法使一个常数?我需要一个for循环来读取和输出数组吗?感谢
class First
{
public:
int getId();
void setId(int);
int getExam();
void setExam(int);
void print();
First(int studentId, int exam);
private:
int id;
int grade;
};
int main()
{
int studentId = 0;
int exam = 0;
First Student(studentId, exam);
cout << "Enter student id" << endl;
cin >> studentId;
Student.setId(studentId);
cout << "enter grade" << endl;
cin >> exam;
Student.setExam(exam);
Student.print();
return 0;
}
答案 0 :(得分:3)
如果您在编译时知道数组的大小,那么就是创建数组的方法:
First student_list[size];
虽然使用像std::array<T, N>
这样的编译时类更为理想:
#include <array>
std::array<int, size> student_list;
如果您在编译时不知道大小,或者您的编译器不支持std::array
,请使用std::vector<T>
:
#include <vector>
std::vector<int> student_list;
此外,参数化构造函数(First(int, int)
)会覆盖编译器通常提供的默认构造函数和复制构造函数。您的默认构造函数可能如下所示:
First() { }
否则,您可以将default
说明符与C ++ 11一起使用:
First() = default;
但是,通过使用专用构造函数的默认参数,当给定0参数时,它可以充当默认构造函数。以下是一个很好的选择:
First(int studentid = 0, int exam = 0)
{ }
最后,是的,您需要某种循环来连续打印出每个元素的等级。