使用没有对象的类函数

时间:2014-10-06 16:09:42

标签: c++ arrays class file-io static

我记得在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);

我觉得使用一个对象来设置对象数组是没有意义的。变量。感谢任何评论的人,如果有更好的方法请告诉我。

1 个答案:

答案 0 :(得分:1)

可以在不使用相应类类型的对象的情况下访问静态成员函数。静态成员函数只能访问静态成员变量。