5.6. Předávání odkazů objektům

Časová náročnost
Časová náročnost: 5 minut

Když je funkci předáván objekt standardním způsobem s voláním hodnotou vytváří se kopie objektu. Ačkoliv není volán konstruktor je při návratu z funkce volán destruktor.

upozornění Když předáváme objekt odkazem nevytváří se žádná kopie a ani při návratu z funkce není volán destruktor. Ovšem změny provedené na objektu v rámci funkce ovlivní i objekt použitý jako argument.

Následující program demonstruje předávání objektu odkazem.

src/5_10.cpp
Příklad 5.10.
#include <iostream.h>

class myclass {
  int who;
public:
  myclass(int n) { 
    who = n;
    cout << "Konstruktor " << who << "\n";
  }
  ~myclass() { cout << "Destruktor " << who << "\n"; }
  int id() { return who; }
};

// predavani odkazem
void f(myclass &o)
{
  //  . operator je stale pouzivan
  cout << "Prijato " << o.id() << "\n";
}

int main()
{
  myclass  x(1);

  f(x);

  return 0;
}


Když přistupujeme ke členům nějakého objektu pomocí odkazu používejme tečkový operátor!