Do czego używacie wskaźników?

0

Witajcie!

Uczę się od jakiegoś czasu programować w języku C++ (CLI) jestem obecnie na etapie klas.

Mam pytanie do starszych kolegów programistów, jak często i w jakim celu w praktyce używacie wskaźników (o ile ich używacie)? Wydaje mi się, że 2 praktyczne zastosowania to przekazywanie wartości do tablic i przesyłanie argumentów do funkcji.

Trochę gubię się w tym języku, proszę o Wasze wskazówki.

0

to przerób jakiś tutorial C, dowiesz się do czego są wskaźniki ;)

0
rafal__ napisał(a)

to przerób jakiś tutorial C, dowiesz się do czego są wskaźniki ;)

Przeczytałem książkę :) i nadal uważam że są mi do szczęścia niepotrzebne, pytam z czystej ciekawości do czego najczęściej je wykorzystujecie (o ile to robicie).

0
james8 napisał(a)
rafal__ napisał(a)

to przerób jakiś tutorial C, dowiesz się do czego są wskaźniki ;)

Przeczytałem książkę :) i nadal uważam że są mi do szczęścia niepotrzebne, pytam z czystej ciekawości do czego najczęściej je wykorzystujecie (o ile to robicie).

nie programuję w C++/CLI tylko w C++, więc są mi potrzebne. ogólnie: do dynamicznej alokacji pamięci i przekazywania przez adres :)

0

A mnie tam służą do zabawy jak się nudzę ^^

0

Do dynamicznej alokacji, ułatwienia pracy z poruszaniem się po tablicy i do przysyłania argumentów do funkcji :) to pierwsze i ostatnie szczególnie się przydaje

0
Cameron napisał(a)

Do dynamicznej alokacji, ułatwienia pracy z poruszaniem się po tablicy i do przysyłania argumentów do funkcji :) to pierwsze i ostatnie szczególnie się przydaje

dziękuję! :)

0

A ja zupełnie nie rozumiem dlaczego ludzie chcąc uczyć się C++ zaczynają od C++/CLI. Przecież to zupełnie inny język, do którego nauki wypadałoby C++ oraz .NET już znać.
90% zastosowań C++/CLI to tworzenie wrapperów native -> managed i na odwrót.

Zacznij kolego od C, potem przejdź do C++, później naucz się C# i .NET, a dopiero na końcu sięgnij po C++/CLI. Jeszcze w międzyczasie możesz zerknąć na C++ z WinRT, który po części składnie czerpie z tych wcześniejszych.

0
Rev napisał(a)

A ja zupełnie nie rozumiem dlaczego ludzie chcąc uczyć się C++ zaczynają od C++/CLI. Przecież to zupełnie inny język, do którego nauki wypadałoby C++ oraz .NET już znać.
90% zastosowań C++/CLI to tworzenie wrapperów native -> managed i na odwrót.

Zacznij kolego od C, potem przejdź do C++, później naucz się C# i .NET, a dopiero na końcu sięgnij po C++/CLI. Jeszcze w międzyczasie możesz zerknąć na C++ z WinRT, który po części składnie czerpie z tych wcześniejszych.

Jestem początkującym programistą i pomyliłem pojęcia. Uczę się tradycyjnego C++, teraz doczytałem że CLI to jakaś implementacja Microsoftu. (sądziłem że CLI - to command line interface czyli konsolowa wersja języka).

Co do okienkowych wersji języka to zastanawiam sie czy wybrać Visual C++, czy C#

0

Ja wskaźników używam głównie gdy

  • enkapsuluje kod poprzez ograniczenie ilości inkludów w nagłówku i dodanie deklaracji zapowiadającej
  • zwracana informacja metody nie jest typu prostego, wtedy wolę zwrócić wskaźnik niż kopiować całą porcję danych. Chociaż tu też nie zawsze, np jeśli getter klasy zwraca pole które nie jest typem wbudowanym ale absolutnie nie mogę sobie pozwolić by ktoś/coś na zewnątrz zmieniało stan/wartość/whateva tego pola to wskaźników rzecz jasna nie używam

Do pozostałych zastosowań wolę używać innych narzędzi, np gdy argument metody nie jest typu prostego wolę użyć referencji niż wskaźnika. Do przechowywania danych wolę używać pojemników stla niż dynamicznych tablic.

0

Wskaźników używam wtedy gdy obiekt / parametr, który chcę przekazać jest opcjonalny, przy czym jeśli nie jest to obiekt można użyć wartości domyślnej.

Aby pominąć użycie wskaźnika można:

0

@vpiotr, @several po Waszych postach widzę jaki poziom programowania reprezentuje, oraz jak wiele mi jeszcze brakuje :) Dziękuję za odp.

Pozdrawiam!

0

Ehh Bracia,nikt nie wspomniał fundamentalnego wręcz powodu żeby używać wskaźników-mechanizm polimorfizmu :]
Ponadto wskaźniki są fajne w połączeniu z dziedziczeniem-otóż wskaźnikiem na jakąś klasę można zarazem pokazywać i na klasę pochodną od niej.Pozwala to na różne użyteczne tricki,ot np można wysłać taki wskaźnik na klasę pochodną do funkcji przyjmującej jako parametr wskaźnik na klasę bazową ;)

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