C ++ to język programowania ogólnego przeznaczenia. Pierwotnie został zaprojektowany jako rozszerzenie C i ma podobną składnię, ale teraz jest to zupełnie inny język. Użyj tego tagu w przypadku pytań dotyczących kodu (który ma zostać) skompilowany za pomocą kompilatora C ++. Użyj znacznika specyficznego dla wersji w przypadku pytań związanych z określoną wersją standardu [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] lub [C ++ 23] itp. .

Co to jest C ++?

C ++ to (przeważnie) typ statyczny, dowolny format, (zwykle) skompilowany, wieloparadygmatowy, poziom średniozaawansowany język programowania ogólnego przeznaczenia; nie mylić z club c++-cli. Został opracowany na początku lat 80. przez Bjarne Stroustrup, początkowo jako zestaw rozszerzeń języka programowania C. Opierając się na C, C ++ulepszone bezpieczeństwo typówi dodano obsługę między innymi automatycznego zarządzania zasobami, orientacji obiektowej, programowania ogólnego i obsługi wyjątków.


Nowy w C ++?

Niezależnie od tego, czy jesteś nowicjuszem w programowaniu, czy zaczynasz używać języka C ++ z innego języka programowania, zdecydowanie zalecamy posiadanie dobrej książki do nauki tego języka. Prowadzimy szczegółową listę książek.

Jeśli szukasz dobrych kompilatorów, GCCjest najczęściej używanym kompilatorem w systemie Linux i na innych platformach uniksopodobnych; Clangto oficjalny kompilator na komputery Mac i FreeBSD; Microsoft Visual C ++jest najczęściej używanym kompilatorem w systemie Windows. Kompilator Intel® C ++jest również powszechnie używany do optymalizacji obliczenia numeryczne w systemach Windows, Linux i Mac.

Turbo-C ++ 3.0 pochodzi z 1991 roku, jest bardzo przestarzałe i zdecydowanie nie jest zalecane. Zobacz poprzedni akapit, aby poznać wolne wybory z tego tysiąclecia.

Dołącz do nas na czacie, na którym omawiamy C ++, ogólnie programowanie, a nawet inne rzeczy, gdy zachodzi słońce i wkrada się nuda. Nie zapomnij o swoim poczuciu humoru, ale zachowaj je cywilizacyjnie.


c++Użycie tagów

Pisząc pytania dotyczące programowania w C ++, pamiętaj o dołączeniu:

  • Informacje o systemie docelowym i kompilatorze. Obejmuje to nazwę kompilatora, wersję i ustawienia używane do kompilacji.
  • Jeśli Twoje pytanie dotyczy konkretnej wersji języka, dodaj c++98c++03c++11c++14c++17, c++20lub c++23. Pytania dotyczące wzmocnienia powinny dodać tag boost. Szczegóły dotyczące różnych wersji można znaleźć poniżej na tej wiki.
  • O ile w pytaniu nie podano wprost, która wersja standardu C ++ jest używana, zakłada się, że używana jest aktualna wersja. To znaczy, niezależnie od wersji ISO 14882, która jest obecnie wymieniona jako aktywna przez ISO. Należy o tym pamiętać, odpowiadając lub komentując pytania oznaczone tagiem c++.

Jednoczesne używanie ci c++

C i C ++ to dwa różne i często niezgodne języki. Unikaj używania obu tagów w tym samym pytaniu, chyba że masz ku temu dobry powód.

Pytanie powinno być oznaczone tagiem ctylko wtedy, gdy:

  • Zawiera czyste C, bez śladu C ++ lub pytań z kodem, który może być w dowolnym języku.
  • Kod jest kompilowany za pomocą kompilatora C.

Pytanie powinno być oznaczone tagiem c++tylko wtedy, gdy:

  • Zawiera kod z dowolnymi funkcjami C ++. Mimo że kod może być „w stylu C”.
  • Kod jest kompilowany za pomocą kompilatora C ++.

Pytanie powinno być oznaczone tagiem zarówno c, jak i c++, jeśli dotyczy:

  • Specyficzne różnice między C i C ++.
  • Zgodność lub przenoszenie kodu między C i C ++.
  • Kod C ++ korzystający z bibliotek C (na przykład kod korzystający z extern "C").

Wskazówki dotyczące edytowania i moderowania postów z tagami ci c++:

Aby edytować / ponownie tagować / moderować pytania z obydwoma tagami, zaleca się posiadanie pełnych uprawnień do edycji oraz złotego club złotego c++.

Jeśli napotkasz post z obydwoma tagami, w razie potrzeby edytuj / oznacz go ponownie, zgodnie z powyższymi zasadami. Jeśli potrafisz rozpoznać język, czytając opublikowany kod, po prostu odpowiednio edytuj tagi. Unikaj monitowania użytkownika „czy to C czy C ++?” w komentarzach, chyba że pytanie jest naprawdę niejasne.

Jednym z przykładów niejasnego pytania jest sytuacja, gdy użytkownik wyraźnie twierdzi, że programuje w C, ale publikuje kod lub komunikaty kompilatora dla C ++. Jeśli tak, poproś o wyjaśnienie i zagłosuj za niejasne.

Opinie z programu operacyjnego „Albo C, albo C ++ jest w porządku” są mocną wskazówką, że pytanie jest słabe lub niejasne. Odpowiedzi mogą się bardzo różnić w zależności od wybranego języka. Pytaj o wyjaśnienia, zbliżone jako niejasne / zbyt ogólne, dopóki PO nie wyjaśni tego.

Zachowaj ostrożność przy ponownym oznaczaniu pytań po opublikowaniu odpowiedzi, zwłaszcza jeśli zostały już opublikowane odpowiedzi zarówno w języku C, jak i C ++. W takich przypadkach tagi należy pozostawić w spokoju, ponieważ ich zmiana spowodowałaby unieważnienie opublikowanych odpowiedzi.

Odpowiedzi z kodem C ++ na pytanie w C, które nigdy nie zostało oznaczone jako c++, należy usunąć jako niezwiązane z tematem. Sprawdź historię edycji pytania przed oznaczeniem / usunięciem takich odpowiedzi, aby upewnić się, że pytanie nigdy nie miało tagu C ++.


c++98

W 1998 roku komitet normalizacyjny C ++ opublikował pierwszy międzynarodowy standard dla C ++ ISO / IEC 14882: 1998, który byłby nieformalnie znany jako C ++ 98.


c++03

W 2003 roku Komitet C ++ odpowiedział na wiele problemów, które zostały zgłoszone za pomocą c++98i odpowiednio je poprawił. Zmieniony język został nazwany C ++ 03.


c++11

Standard języka pozostał prawie taki sam przez długi czas, ale w 2011 r. Nowy standard, C ++ 11 (wcześniej znany jako C ++ 0x) został opublikowany w ISO/IEC 14882: 2011. Zamiast w podejściu „wielkiego wybuchu” jest on wprowadzany stopniowo, ponieważ kompilatory obsługują nowe funkcje języka. Zobacz Bjarne Stroustrup's C ++ 11 FAQ, aby zobaczyć, co nowego w języku, i sprawdź FAQ własnego kompilatora, aby zobaczyć które z tych funkcji są obecnie obsługiwane:

Kilka funkcji, które były przedmiotem dyskusji w C ++ 11, zostało przeniesionych do następnej iteracji.


c++14

C ++ 14 to małe rozszerzenie C ++ 11. Został zatwierdzony w sierpniu 2014 roku i wydany w grudniu tego samego roku. Wcześniej określany jako C ++ 1y, ponieważ rok zatwierdzenia był niepewny. Wiele popularnych kompilatorów ma już obsługę języka C ++ 14 na pewnym poziomie.


c++17

C ++ 17 dodaje kilka innych głównych funkcji (i kilka mniejszych). Zwykle nazywa się go C ++ 1z lub C ++ 17, ponieważ prace techniczne nad nowym standardem zostały zakończone w marcu 2017 r. Projekt standardu został zatwierdzony (jednogłośnie) przez ISOwe wrześniu 2017 r. I oficjalnie opublikowanew grudniu 2017 r.


c++20

W lutym 2020 komisja C ++ Standard zakończyła prace nad C ++ 20. Został jednogłośnie zatwierdzony pod koniec tego roku i został opublikowany oficjalnie w grudniu 2020 roku.

Następujące (i więcej) nowe funkcje zostały już zaakceptowane w C ++ 20:


c++23

Następujące (i więcej) nowe funkcje zostały już zaakceptowane w wersji roboczej C ++ 23:


Kompilatory online

Jeśli chcesz dać C ++ spin, możesz wypróbować jedną z następujących usług kompilatora online:

  • Coliru(GCC, Clang)
  • ideone.com(GCC, Clang)
  • codepad(GCC)
  • rextester(GCC, Clang, Visual C ++)
  • repl.it(GCC)
  • ELLCC(Clang)
  • CodingGround(GCC)
  • C ++ Shell(GCC)
  • Wandbox(GCC, Clang)
  • Compiler Explorer(GCC, Clang, ICC, Visual C ++). Wiele wersji GCC / Clang dla x86, a także dla niektórych architektur innych niż x86 (ARM, ARM64, PPC i AVR), a także najnowsze wersje Microsoft Visual C ++. Oprócz wykonania (przycisk ./a.out) zawiera ładnie sformatowane wyjście asemblera, a nawet opcjonalnie podświetlane kolorem linie źródła i asemblera, aby pomóc znaleźć, która linia źródłowa jest odwzorowywana na którą linię asemblera.
  • C ++ Insights(Clang) Transkompilator kodu, który pokazuje kod C ++ 98, który jest mapowany w nowoczesnych konstrukcjach
  • Quick benchmark(GCC, Clang) Narzędzie do mikro testów porównawczych służące do szybkiego i prostego porównywania wydajności fragmentów kodu.


c++-faqw języku C ++


Zewnętrzne często zadawane pytania


Inne zasoby zewnętrzne


Pokoje czatowe