Witam. Proszę o proste wytłumaczenie do czego w klasach jest znak ::?
klasy pytanie c++
- Rejestracja: dni
- Ostatnio: dni
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: dni
- Ostatnio: dni
- Postów: 331
Tak chodziło o operator zakresu a możesz to jakoś prościej wytłumaczyć?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4883
dzieki niemu mozesz zmieniac zakres (scope) w ktorym sie znajdujesz
- Rejestracja: dni
- Ostatnio: dni
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: dni
- Ostatnio: dni
- 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)
- Rejestracja: dni
- Ostatnio: dni
Ł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.