C ++标题中的数组问题

时间:2013-05-16 13:41:00

标签: c++ arrays

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

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

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

 #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];
}   

1 个答案:

答案 0 :(得分:2)

让您的Student对象代表一个学生,然后使用std::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.