Witam. Proszę o proste wytłumaczenie do czego w klasach jest znak ::?
- Rejestracja:ponad 19 lat
- Ostatnio:około miesiąc
W klasach nie ma tej pary znaków.
To jest operator zakresu https://docs.microsoft.com/pl-pl/cpp/cpp/scope-resolution-operator?view=msvc-160
- Rejestracja:ponad 13 lat
- Ostatnio:ponad 2 lata
- Postów:4882
dzieki niemu mozesz zmieniac zakres (scope) w ktorym sie znajdujesz
- Rejestracja:ponad 19 lat
- Ostatnio:około miesiąc
Nikto0 napisał(a):
Tak chodziło o operator zakresu a możesz to jakoś prościej wytłumaczyć?
Tam są przykłady, nie wyobrażam sobie co może być prostszego niż przykład.
- Rejestracja:ponad 11 lat
- Ostatnio:minuta
- Lokalizacja:Szczecin
::
rozdziela nazwy tak jak /
(lub \
) rozdziela nazwy folderów w ścieżkach. Możesz traktować nazwy w C++ jakby były w folderach o nazwach ich przestrzeni nazw, jak chcesz użyć jakiejś innej, możesz odnieść się do niej bezpośrednio (np. std::string
to klasa string
w przestrzeni nazw std
relatywnej do obecnej)
namespace
)
- Rejestracja:prawie 16 lat
- Ostatnio:3 miesiące
Łopatologicznie:
Jak mieszkasz w Polsce i wysyłasz list do kogoś w Polsce, to w adresie nie musisz wpisywać Polska (bo jesteś w tej samej przestrzeni nazw :-) ).
Podobnie z używaniem operatora zakresu ::
Gdy jesteś w tej samej przestrzeni nazw to odwołujesz się do obiektu/klasy/zmiennej/typu wpisując tylko jego nazwę, natomiast gdy to do czego się odwołujesz jest w innej przestrzeni nazw, to musisz się odwołać podając jej pełny adres a nie skrócony, czyli np tak:
przestrzenNazw::NazwaKlasy
zamiast tylko NazwaKlasy
Możesz też zadeklarować wcześniej z jakiej przestrzeni nazw chcesz korzystać (np. using namespace std;
) i wtedy nie musisz już pisać pełnej nazwy, bo kompilator już wie o jaką Ci chodzi. Przestrzenie nazw, są po to, by nie dochodziło do kolizji nazw. Np w USA też jest miejscowość o nazwie Warszawa.
Tak samo w Twoim kodzie może być np. klasa czy funkcja o identycznej nazwie jak w kodzie biblioteki z której chcesz korzystać. Aby te dwa byty odróżnić stosujemy właśnie przestrzenie nazw.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.