我有以下结构:
struct pole{
int sifra; // sifra na artiklot
string opis; // opis na artiklot
float cena; // edinecna cena
int vlez_kol; // vlezna kolicina
int izlez_kol; // izlezna kolicina
float dan_stapka; // danocna stapka
float iznos; // iznos
int datum; // datum na vlez i izlez (GGMMDD)
}; // maksimalen broj na artikli e 100
pole artikli[100];
void vlez_artikl(artikli[]){ // how to take the struct as reference?
}
我正在编写一个函数来为结构中的每个元素输入元素,但我不知道如何获取结构(通过结构我的意思是pole artikli[100]
作为对函数的引用? / p>
答案 0 :(得分:2)
void vlez_artikl(pole &artikli){
}
//later you can call
vlez_artikl(artikli[32]);
答案 1 :(得分:1)
我想你想传递结构数组?如果没有,那么蒂姆劳的回答是恰当的。
要使用引用,您需要知道所引用的确切类型,包括数组维度。这只能通过模板实现:
template <size_t N>
void vlez_artikl(pole (artikli&)[N]) { // take the struct[] by reference
....
}
由于使用模板有缺点(每个N的模板实例化,N必须在编译时知道,模板实现必须使用它暴露给翻译单元),编写使用a访问数组的函数更为常见指针(通常与数组大小并排)。以下两者都是等效的......
void vlez_artikl(pole artikli[], size_t n) ...;
void vlez_artikl(pole* artikli, size_t n) ...;