0

如何创建等级类变量的数组。我不明白如何初始化和写什么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;

}
4

1 回答 1

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)
{ }

最后,是的,您需要某种循环来连续打印出每个元素的等级。

于 2013-05-22T23:25:46.743 回答