5.6. Předávání odkazů objektům
| Č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.
|
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.
|
| 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!