我记得在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);
我觉得使用一个对象来设置对象数组是没有意义的。变量。感谢任何评论的人,如果有更好的方法请告诉我。
答案 0 :(得分:1)
可以在不使用相应类类型的对象的情况下访问静态成员函数。静态成员函数只能访问静态成员变量。