-1

因此,我尝试用 C++ 制作一个简单的小数据库来取乐。我想用数组来做。但我不断收到错误。我希望它在用户输入学生信息后增加整数“i”。因此,它将允许输入无限数量的姓名年龄。我想最终将用户输入的名称存储到记事本中。我可以在 int main() 中执行此操作,但我正在尝试使用标头。

我在使用数组时遇到了很多麻烦。

这是我在标头和 CPP 文件中使用的代码片段。我尝试在私有中声明 int 'i' 和在公共中声明 int 'b' 并将它们放入数组中,然后在 CPP 文件中将私有指向公共,但它不起作用。如果你们能帮助我,那将非常感谢!顺便说一句,我是新人,所以请原谅我的无知。我也不是我是否正确使用了指针。

 #include <string>

 class student3
 {
     protected:
     int i;
     std :: string *_studentFirstName[];
     std :: string *_studentLastName[];
     int *_studentAge[];
     double *_studentGPA[];

     public:
      int b;
      void setstudentFirstName(std :: string firstName[]);
      void setstudentLastName(std :: string lastName[]);
      void setstudentAge(int Age[]);
      void setstudentGPA(double GPA[]);
      std :: string getstudentFirstName();
      std :: string getstudentLastName();
      int getstudentAge();
      double getstudentGPA();
  }

#include "student3.h"

void student3 :: setstudentFirstName(std :: string firstName[b])
{
*_studentFirstName[i] = firstName[b];
}
void student3 :: setstudentLastName(std :: string lastName[b])
{
*_studentLastName[i] = lastName[b];
}
void student3 :: setstudentAge(int Age[b])
{
*_studentAge[i] = Age[b];
}
void student3 :: setstudentGPA(double GPA[b])
{
*_studentGPA[i] = GPA[b];
}
std :: string student3 :: getstudentFirstName()
{
 return *_studentFirstName[i];
}
std :: string student3 :: getstudentLastName()
{
 return *_studentLastName[i];
}
int student3 :: getstudentAge()
{
return *_studentAge[i];
}
double student3 :: getstudentGPA()
{
return *_studentGPA[i];
}   
4

1 回答 1

2

让您的Student对象代表一个学生,然后使用 astd::vector<Student>来收集它们。

非常简化的示例:-

class Student
{
 public:
   std :: string firstName;
   std :: string lastName;
   int age;
   double gpa;
} 

std::vector<Student> students;

...
Student temp;
temp.firstName = "Arthur";  // or read from user, of course
temp.lasttName = "Dent";
temp.age = 42;

students.push_back(temp); // adds a *copy* of temp to the vector.
于 2013-05-16T13:44:10.160 回答