Czy przy przypisaniu pointera do jakiegoś obiektu do void* użycie jawnej konwersji cokolwiek daje?

void* vp = new int(5);
void* vp = reinterpret_cast(new int(5));
Obie wersje przechodzą i przy odwrotnym rzutowaniu wynik jest poprawny. Kompilator przeprowadza niejawną konwersję, czy skoro void* to tylko wskaźnik na pamięć to ta nie jest nawet potrzebna?
#cpp #programowanie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wytłumaczy mi ktos, czemu wielu programistów w #cpp
pisze na zasadzie "std::cout << x;" i w kazdej linii kodu musi powtarzac "std::"
zamiast na poczatku napisac using namespace std;?
Pytam calkowicie powaznie
#naukaprogramowania #programowanie
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Niels: Kwestia stylu. "using namespace std" jest postrzegane jako zły styl, ponieważ wprowadzasz ogromną liczbę nazw funkcji i typów do ogólnej przestrzeni, co łatwo może prowadzić do konfliktów (nie zliczę ile bibliotek definiuje typy o podobnych nazwach, np. pair). Bezpieczniejszym rozwiązaniem jest "using std::cout".

Osobiście unikam tego i preferuję styl, w którym kod automatycznie wyjaśnia jakiej biblioteki używasz w danym momencie. cout to dość trywialny przykład, ale jest masa mniej
  • Odpowiedz
@Mizofonik: jest funkcja atan z ale pamietaj ze tanges szybko przekracza zakres liczb zmiennoprzecinkowych przy kontach blisko 90 stopni więc lepiej uzyc tej funkcji: https://en.cppreference.com/w/cpp/numeric/math/atan2 . Podajesz w niej wartosci dwóch przyprostokatnych a i b, dzieki czemu funkcja oblicza wartość dla konta 90. Aha funkcje zwracaja wartość w radianach więc musisz podzielić przez PI oraz pomnożyć przez 180 jak chcesz wynik w stopniach.
  • Odpowiedz
@defoxe: Nie no, koncepcja była ok - można było szybko budować złożone desktopowe aplikacje przeciągając kontrolki na ekran. Tyle, że można to było robić bez zdobycia najpierw solidnej wiedzy z podstaw programowania i później utrzymanie takiego systemu to była droga przez mękę. No ale fakt, to nie wina narzędzia ;)
  • Odpowiedz
Tyle, że można to było robić bez zdobycia najpierw solidnej wiedzy z podstaw programowania


@reneene: Prawda... Wielka zaleta i wielka wada zarazem.
  • Odpowiedz
Niedługo będę przymierzał się do podjęcia pracy jako programista C++ (miałem wcześniej drobne staże/praktyki). Zastanawiam się nad wyborem miasta i na razie najbardziej zastanawia mnie Kraków, ale rozważam również inne (np. Warszawę). Czy ma ktoś rozeznanie na rynku pracy w Krakowie i może podesłać info jakie firmy zatrudniają tam w C++? Przeglądałem aktualne oferty, ale nie ma tego zbyt wiele i zastanawia mnie gdzie jest więcej firm zatrudniających w C++, a szczególnie
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej, programiści C++ ( ͡° ͜ʖ ͡°)

Siedzę w web już trochę, ale moją miłością pozostał cpp. Jak wygląda praca? W ogłoszeniach nie widzę nic o testach, wzorach projektowych - głównie embedded. Używa się wskaźników automatycznych czy kod jest sprzed lat? Jakieś testy? Serwery CI/CD, TDD? Pytam z perspektywy backendowca, kusi mnie przeskok na c++ ale niepokoi mnie brak takich wymogów w ogłoszeniach o pracę.

Jak to u
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie idź w c++ taka rada. Ja generalnie bym bardzo chętnie w to się pchał ale moim priorytetem jest możliwość pracy zdalnej, a to cpp rzadkość :( No i generalnie c++ to raczej w większości bugfixy i inne gówna... Wiem co mówię 4 lata spędziłem w tym dołku...
  • Odpowiedz
#naukaprogramowania #cpp
Mam funkcje odczytująca z pliku dane i zapsiuje je do tablicy struktur, w innych funkcjach chce używać tej tablicy. Przy stałym rozmiarze to wiek jak to zrobić ale jak to zrobić kiedy rozmiar tablicy znamy przy odczycie z pliku.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 3
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@spinel:
1. skąd funkcja ma wiedzieć o jakie tablice chodzi?
2. po co ten try/catch?
3. int n = 5; double matrix_b[n]; taki zapis jest poprawny jedynie w C, w C++ obsługa tego jest dobrą wolą używanego kompilatora(czyli wcale nie musi działać)
  • Odpowiedz
doprecyzujecie wypowiedź czy bawimy się dalej w elektrodę?

No więc dobrze...doigrałeś się :-)


1.Chcesz wysłać paczkę więc bierzesz pudełko pakujesz i wołasz kuriera
2.Kurier przyjeżdża ze swoim pudełkiem. Twoje zostawia.
  • Odpowiedz
Troche sie boje ryzykować z racji na 1.5 roku przerwy w programowaniu, czuje sie wybita kompletnie z tematu i boje sie ze w nowej pracy nie dam rady.

Proponuja mi 4k brutto i umowe na rok, co wydaje mi sie mało. Przed ciążą miałam 4k + 1.5k z lojalki.


@AnonimoweMirkoWyznania: Już wiesz czemu tyle. Zanim wrócisz do formy i sprawności umysłowej, to trochę wdrożenie potrwa. Lepsze to niż nic, a
  • Odpowiedz
@Metoksyfenidyna9: W zależności od tego o co dokładnie chcesz zapytać:

1. Żadna. Referencja jest implementowana wskaźnikiem.
2. Składniowa. Referencja jest dość "transparentna" w użyciu (ampersand w nazwie typu i koniec), wskaźnik dość hałaśliwy (tu gwiazdka, tam ampersand, przy obiektach strzałeczka itp.).
3. Wskaźnik możesz przepinać i nullować, referencji nie możesz przepiąć i nie istnieje odpowiednik null dla referencji. Referencja zachowuje się trochę jak * const.
  • Odpowiedz
@Metoksyfenidyna9: "Teoretycznie" to właściwe określenie. W pewnym momencie będziesz miał np. taki scenariusz, że potrzebujesz w obiekcie A ustawić odniesienie do obiektu B, tylko że nie możesz tego zrobić w momencie tworzenia A (bo np. B jeszcze nie istnieje). Wtedy referencja nie styknie, bo ponieważ się zachowuje jak * const, musi być ustawiona przed wywołaniem konstruktora obiektu A.

Lub w skrócie: to co @Kaczus2B napisał. :D
  • Odpowiedz