kopia obiektu, obiekt jako parametr funkcji

Odpowiedz Nowy wątek
2006-12-07 23:24
0

Możliwe jest przekazanie obiektu jako parametru funkcji. W jaki sposób można to zrobić.
I jak da się stworzyć obiekt który będzie kopią innego obiektu?

Pozostało 580 znaków

2006-12-07 23:47
0

Jasne, że jest możliwe, oto banalny przykład

#include<iostream>
using namespace std;

class T
{
private :
int wiek;
public :
T (int w)
{
wiek = w;
}
T(T &z){ wiek = z.wiek; } // konstruktor kopiujący
void wyswietl () { cout << wiek << endl; }
};

void w (T &os)
{
os.wyswietl();
}

int main ()
{
T a(52); // mamy obiekt klasy T
w(a); // przekazujemy go jako parametr
T s = a;
w(s);
system("pause");
return 0;
}

Pozdrawiam

Pozostało 580 znaków

2006-12-08 15:07
0

można,ale przekazywanie obiektu jako parametr jest bardzo nieefektywne-na stosie musi zostać zrobiona wówczas jego kopia,co długo trwa zwłaszcza przy większych obiektach.
Dlatego też znacznie lepiej jest używać referencji do obiektu-wowczas tworzony jest tylko 4-bajtowy adres na stosie,co wykonywane jest błyskawiczne.Niebezpieczeństwo tkwi jedynie w fakcie możliwości niejawnej zmiany obiektu przez funkcję,ale to się tyczy referencji w ogóle.

co do kopiowania obiektów-tutaj masz do wyboru:
1)polegać na domyślnym konstruktorze kopiującym,który działa na zasadzie kopia składnik-po-składniku.Haczyk w tej metodzie polega na tym,że w przypadku kiedy składnikami obiektu są wskaźniki,ich wskazania również zostaną zdublowane,co może dać niepożądane efekty.
2)zdefiniować własny konstruktor kopiujący,i samemu już dokładnie określić,jak mają być kopiowane poszcze3gólne składniki obiektu źródłowego na docelowy


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0