• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jakie są bardzo skomplikowane i często używane rzeczy w C++?

VPS Starter Arubacloud
0 głosów
348 wizyt
pytanie zadane 29 marca 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
Lubię czasami w domu pogłowić się nad jakimś bardziej skomplikowanym algorytmem albo optymalizacją czegoś co już zrobiłem. Ostatnio nauczyłem się płynnie polimorfizmem posługiwać i zgłębiłem trochę czym różni się funkcja od metody, jak składnia wygląda w przypadku tablicy funkcji i tablicy metod. Co dalej? Jakie są ciekawe, trudne do zrozumienia i względnie przydatne rzeczy których warto się nauczyć? Ogólnie, jak osiągnąć mistrzostwo w posługiwaniu się tym językiem?

1 odpowiedź

+3 głosów
odpowiedź 30 marca 2022 przez SimiVoid Pasjonat (19,790 p.)
wybrane 30 marca 2022 przez Daaa22
 
Najlepsza
Sam programuję w C++ od dobrych 7-8 lat i ten język ciągle mnie zaskakuje.
Wraz z wchodzeniem nowych standardów, pojawiają się ciekawe rzeczy, dzięki którym można przyspieszyć programy, a także ułatwić sobie w pewien sposób prace nad programem.

Nie wiem czy miałeś styczność z takimi zagadnieniami jak:
- przeciążanie operatorów
- konstruktory kopiujące i przenoszące
- wyrażenie prekompilowane constexpr
- szablony klas i funkcji
- wielowątkowość
- wyrażenia lambda

Są to rzeczy, które wykorzystuję dość często w swoich projektach i według mnie są one dość potrzebny i wypadałoby się w miarę orientować w tych zagadnieniach.

Sam pisząc kod produkcyjny w C++ twierdzę, że znajomość tego języka jest na takim poziomie, że w dość sensownych czasie jestem wstanie napisać w teorii dowolny kod, ale jednak twierdzę że nie znam go zbyt dobrze.
komentarz 30 marca 2022 przez Daaa22 Dyskutant (8,250 p.)
Przeciążenie operatorów, szablony i wyrażenia lambda są dosyć proste (chociaż dalej nie wiem po co są wyrażenia lambda skoro po prostu można jakąś funkcje zdefiniować. Jak wiesz po co to jest to daj znać). O konstruktorach kopiujących słyszałem, ale konstruktor przenoszący pierwszy raz widzę, do czego to służy i jak mniej więcej wygląda składnia? I z tego co napisałeś to wielowątkowość wydaje się świetnym pomysłem do zgłębienia, i z tego co czytam zrozumiałem że program bez wielowątkowości działa tylko na jednym rdzeniu, dobrze zrozumiałem?
komentarz 30 marca 2022 przez Oscar Nałogowiec (29,290 p.)
Większość tych nowych rzeczy to tylko ułatwienia, nie dają jakiś nowych możliwości, czegoś co wcześniej nie było możliwe. Bo w sumie w samym C można napisać "wszystko".
1
komentarz 30 marca 2022 przez adrian17 Ekspert (344,100 p.)
edycja 30 marca 2022 przez adrian17

szablony (...) są dość proste

Oj nie, to jest gigantyczny rabbit hole - częściowe specjalizacje, resolution order, decltype, declval, SFINAE etc... teraz jeszcze np koncepty doszły...

chociaż dalej nie wiem po co są wyrażenia lambda skoro po prostu można jakąś funkcje zdefiniować. Jak wiesz po co to jest to daj znać

Przepisz to z funkcją zamiast lambdy (nie dotykając niczego innego) i zobacz jak łatwo pójdzie :)

void sort_by_mod(std::vector<int> &tab, int mod) {
    std::sort(tab.begin(), tab.end(), [=](int a, int b){ return a%mod < b%mod; });
}

do czego to służy i jak mniej więcej wygląda składnia

Może lepiej jak samemu o tym informacji poszukasz, niż żeby ktoś Ci tutaj przepisywał podręcznik do komentarza ;)

komentarz 30 marca 2022 przez edutomek Dyskutant (8,380 p.)

@SimiVoid, Taki komentarz na boku dyskusji:

Sam programuję w C++ od dobrych 7-8 lat i ten język ciągle mnie zaskakuje. (...)

Sam pisząc kod produkcyjny w C++ twierdzę, że znajomość tego języka jest na takim poziomie, że w dość sensownych czasie jestem wstanie napisać w teorii dowolny kod, ale jednak twierdzę że nie znam go zbyt dobrze.

Bardzo dziękuję za to, co napisałeś.

Sam trzymam się od C++ z daleka (nigdy się nie wgłębiłem w ten akurat język, poza jakieś podstawy), więc staram się nie wypowiadać na jego temat. Jednak "trochę" o nim poczytałem, oraz zapoznałem się z opiniami paru ludzi, którzy zawodowo programowali w C++ od wieeelu lat (też min. 8-10) i twierdzili dokładnie to samo. A było to w czasach, kiedy kolejne standardy C++ nie ukazywały się tak często, jak obecnie.

Jakże często natomiast można przeczytać opinie młodych, że przerobili jakiś tutorial, albo uczyli się C++ w szkole i już go umieją - no i pytają, co robić dalej. Tak, jasne, oni "umieją" C++. (Przy okazji: imponuje mi postawa autora pytania: czegoś tam się nauczył, pyta, co robić dalej. Nie twierdzi, że zna C++.)

A dla odprężenia (oraz dla znających historię Forresta Gumpa) link:
https://www.reddit.com/r/ProgrammerHumor/comments/8nn4fw/forrest_gump_learns_c/

Podobne pytania

0 głosów
1 odpowiedź 158 wizyt
pytanie zadane 15 września 2016 w PHP przez MaciekM Użytkownik (990 p.)
0 głosów
0 odpowiedzi 262 wizyt
pytanie zadane 25 czerwca 2019 w JavaScript przez sapero Gaduła (4,100 p.)
–2 głosów
2 odpowiedzi 654 wizyt
pytanie zadane 6 stycznia 2021 w Bezpieczeństwo, hacking przez Igorek Mądrala (6,290 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...