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

Usunięta treść Dodana treść
Liteman (dyskusja | edycje)
rewert
Linia 13:
Stałe w C++ (obiekty zadeklarowane ze słowem const) są stałe w pełnym tego słowa znaczeniu. Np. stałe typów całkowitych mogą być stosowane tam, gdzie wymaga się stałych wyrażeń (tzn. jako etykiety case, jako rozmiar tablic itp.). W C już nie i tam do takich stałych trzeba stosować dyrektywę [[C/Preprocesor|preprocesora]] ''#define''. W C stała jest dokładnie tym samym co zmienna, z tym tylko zastrzeżeniem, że nie można jej jawnie modyfikować (ale można zmodyfikować zawartość wskaźnika do adresu stałej, czyli de facto zmodyfikować stałą).
 
Konsekwencją tego po części jest fakt, że globalnie deklarowane stałe w języku C mają to samo wiązanie (ang. linkage) co zmienne, czyli zewnętrzne. W języku C++ stałe mają domyślnie wiązanie lokalne i aby były one zewnętrzne (dzielone między jednostkami kompilacji), muszą być zadeklarowane razem z inicjalizacją i słowem '''extern'''.vbvbvbvbvb
 
=== Zmienne ===
Linia 30:
=== Typ stałej znakowej ===
 
W języku [[C|C]] literał znakowy (stała znakowa), np. 'a' jest traktowana jako '''int''', natomiast w C++ jest uważana za '''char'''..
 
=== Typ bool ===
Linia 48:
=== Alternatywne słowa kluczowe ===
 
W języku C++ dodano dodatkowe słowa kluczowe opisujące niektóre operatory. Operatory <tt>&&</tt>, <tt>||</tt> i <tt>!</tt> możemy też zapisywać jako <b>and</b>, <b>or</b> i <b>not</b>. Istnieją także słowa dla operatorów bitowych &, | i ^: '''bitand''', '''bitor''' i '''xor'''. Podobnie również dla operatorów połączonych z przypisaniem: ''' and_eq ''', ''' or_eq ''' i ''' xor_eq '''. Istnieje także, choć szczerze nie wiem po co, ''' not_eq '''.jlj
 
=== Biblioteka standardowa ===