我想知道如何通过引用将结构数组传递给函数。我发现了如何使用指针来做,但是也想通过引用来学习。到目前为止,这是我的代码。
struct employeeType
{
string firstName;
...
double monthlyBonus;
};
void readEmpData(ifstream& infile, employeeType *emp, int length);
我以为我只是做了employeeType&emp或employeeType&emp [],但是得到了错误,我用谷歌搜索的所有内容都做了指针。
这是pastebin上的完整代码,用于澄清我的学习实验:
http://pastebin.com/6NfZ3LC4
最佳答案
我假设您希望readEmpData从文件中读取一组雇员。在这种情况下,调用者将不知道有多少雇员,因此数组及其长度应为输出参数。适当的签名是:
void readEmpData(ifstream & infile, employeeType *& emp, int & length);
要么
employeeType * readEmpData(ifstream & infile, int & length);
您还可以为employeeType定义运算符
<<
并使用STL进行读取:vector<employeeType> employees;
copy(istream_iterator(file), istream_iterator(), back_inserter(employees));