Zalety i wady korzystania ze wskaznikow oraz użycie w życiu codziennym.

0

Tak jak w nazwie tematu, chciałbym, abyście przybliżyli mi bardziej czy właśnie warto z nich korzystać oraz przy jakich sytuacjach?

0
risen napisał(a)

Tak jak w nazwie tematu, chciałbym, abyście przybliżyli mi bardziej czy właśnie warto z nich korzystać oraz przy jakich sytuacjach?

Chodzi Ci o jakieś konkretne zastosowanie? Jeśli nie, to odpowiedź jest prosta. Warto - bez nich wiele rzeczy byłoby... delikatnie mówiąc trudniejsze ;).

0

Nawet bardziej, niemożliwe.

0

Czasem nawet użycie wskaźników staje się niezbędne.
Co do zalet ich użycia podam przykład z życia wzięty:

class Example
{
    int a, b, c, d, e;
};
int main()
{
    Example obj;
    Example *pExample = new Example();
    cout << sizeof( pExample ) << "\n" << sizeof( obj );
    delete pExample;
    return 0;
}

Tworzysz sobie obiekt ( zajmuje on 20B ), tworząc dynamicznie obiekt za pomocą wskaźnika rozmiar jego wynosi 4B ( zależnie od architektury ). Jaka jest więc zaleta stosowania wskaźników? Co jest bardziej opłacalne, przechowywanie 1000 obiektów w tablicy, czy 1000 wskaźników?

0
matek3005 napisał(a)

Tworzysz sobie obiekt ( zajmuje on 20B ), tworząc dynamicznie obiekt za pomocą wskaźnika rozmiar jego wynosi 4B ( zależnie od architektury ).

Przykład trochę nietrafiony, ja doliczyłem się narzutu 20B+4B = 24B. Chyba że Twój wskaźnik będzie sobie po prostu istniał ;). Wtedy jest jednak trochę mniej funkcjonalny.

1

Jeśli jednak chcemy przechowywać obiekty w tablicy, powiększać potem jej rozmiar czy w inny sposób działać jakoś na niej to nie wiem czy nie lepiej jest przechowywać w niej wskaźniki do tych obiektów niż same obiekty, a o to mi chodziło w przykładzie :)

1
matek napisał(a)

Jeśli jednak chcemy przechowywać obiekty w tablicy, powiększać potem jej rozmiar czy w inny sposób działać jakoś na niej to nie wiem czy nie lepiej jest przechowywać w niej wskaźniki do tych obiektów niż same obiekty, a o to mi chodziło w przykładzie :)

W przypadku tablicy to ma raczej mniejsze znaczenie. Ale np w funkcji:

void function(LolClass lol){
}
 

Wykorzystanie wskaźnika bądź referencji zaoszczędziłoby sporo pamięci, oraz procesora(chyba że rzeczywiście chcemy stworzyć kopię obiektu).

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