Pasare structuri

Structurile pot fi pasate prin valoare (copiere), prin referință sau prin pointer.

struct Punct { double x, y; };

double distanta(Punct a, Punct b) {  // prin valoare (copiere)
  double dx = a.x - b.x;
  double dy = a.y - b.y;
  return sqrt(dx*dx + dy*dy);
}

void translateaza(Punct& p, double dx, double dy) {  // prin referință
  p.x += dx;
  p.y += dy;
}

Punct p1 = {0, 0}, p2 = {3, 4};
cout << distanta(p1, p2) << endl;  // 5
Preferă pasarea prin const& pentru structuri — evită copierea fără a permite modificarea.