我记得在Java中做了这样的事情,但那是一段时间后,我知道你可以从没有对象的类调用一个函数。但我不知道如何在类的头文件和实现文件中实现它。基本上我一直在研究一个读取文件的函数,并在数组的某些索引中设置变量。我知道静态对象不能访问非静态对象。但我记得之前做过这样的事情。使用没有对象的类函数
int Person::readFile(Person person[], int counter) {
ifstream infile;
infile.open("People.txt");
while(!infile.eof()) {
infile >> person[counter].firstName >> person[counter].lastName >> person[counter].age >> person[counter].gender;
counter++;
}
infile.close();
return counter;
}
我希望它读取前4个文件元素并将它们设置为当前索引,然后转到下一个数组索引。我打算让它成为一个单独的函数,但是标准是在头文件和实现文件中包含所有内容。它在我使用时运行良好
Person people[MAX_SIZE];
int i = 0;
people[i].readFile(people, i);
这是好的,因为我敢肯定这是可以接受的。但我希望它像这些线中的任何一条。
readFile(people, i);
Person::readFile(people, i);
我觉得用对象来设置对象变量数组是没有意义的。谢谢任何人的评论,如果有更好的方法,请让我知道。
为了能够做到这一点,该函数必须声明为“static”。 – CoryKramer 2014-10-06 16:11:53
使'Person :: readFile'静态。 – 0x499602D2 2014-10-06 16:11:53
并从Person类中取出readFile()。为此创建一个单独的类PersonFiller。 OOP更正确。 – Kastaneda 2014-10-06 16:18:53