我想知道如何通过引用将结构数组传递给函数。我发现了如何使用指针来做,但是也想通过引用来学习。到目前为止,这是我的代码。

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));

07-24 14:02