C++/Różnice między C a C++: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
→‎Typ bool: -> nie tylko liczby dodatnie oznaczają true
Derbeth (dyskusja | edycje)
+ komentarze, małe porządki
Linia 3:
Brakuje tu z pewnością sporo rzeczy, jeśli możesz, uzupełnij tę listę.}}
 
=== StałeKomentarze ===
W czystym C nie jest dozwolone używanie komentarzy zaczynających się od <tt>//</tt>.
 
=== Stałe ===
 
Kompilator C++ traktuje stałe inaczej niż kompilator C. Jeśli to możliwe, stała nie jest trzymana w pamięci; zamiast tego do kodu może być wstawiona bezpośrednio jej wartość. Dzięki temu możliwe jest używanie stałych np. przy określaniu rozmiarów tablic, do czego w C konieczna była dyrektywa [[Programowanie:C:Preprocesor|preprocesora]] '''#define'''.
 
=== Zmienne ===
 
* możliwość deklarowania zmiennych np. w instrukcji sterującej petli for
 
=== Typ char ===
 
{| WIDTH="95%"
| style="background-color: #f2fff2; border: solid 1px #bfffbf; padding: 1em;" valign=top|
Uwaga!<br>
W języku [[Programowanie:C|C]] literał znakowy (stała znakowa), np. 'a' jest traktowana jako '''int''', natomiast w C++ jest uważana za '''char'''.
|}
 
=== Typ bool ===
Linia 23 ⟶ 22:
Bool to nowy typ wprowadzony w C++ przechowujący wyniki wyrażeń logicznych. Przyjmuje dwie predefiniowane wartości - true (prawda) i false (fałsz). Jest to zmiana w stosunku do języka C, gdzie nie było osobnego typu i każda liczba mogła być interpretowana jako wartość logiczna. W C++ pozostała taka możliwość - liczby różne od 0 (czyli również ujemne) są traktowane jako prawda, zero jako fałsz. I odwrotnie: true może być traktowane jako jedynka, false jako zero.
 
=== Biblioteka standardowa ===
C++ używa innych nazw plików nagłówkowych np. <tt>cstdio</tt> zamiast <tt>stdio.h</tt>. Zobacz też rozdział [[C++:Przestrzenie nazw#Korzystanie z biblioteki standardowej C|Przestrzenie nazw]].
Inne nazwy plików nagłówkowych.
 
=== Funkcje ===
Gdy napiszemy <tt>funkcja() {}</tt> to w C funkcja ta będzie miała [[Programowanie:C:Funkcje#Zmienna liczba parametrów|zmienną listę argumentów]] a w C++ będzie miała pustą listę argumentów.
 
=== Struktury ===
Jeśli mamy strukturę Struktura to w C zmienne definiujemy <tt>struct Struktura s1, s2;</tt>. W C++ możemy pominąć słowo kluczowe <tt>struct</tt>.