programowalnia.info

Nowy mechanizm forum! Problemy i sugestie proszę zgłaszać do administratora
Teraz jest 2010-07-30, 09:16

Wszystkie czasy w strefie UTC + 1




Utwórz nowy wątek Ten wątek jest zamknięty. Nie możesz w nim pisać ani edytować postów.  [ Posty: 2 ] 
Autor Wiadomość
 Tytuł: C++
PostNapisane: 2007-09-09, 18:19 
Offline

Dołączył(a): 2007-09-09, 17:53
Posty: 220
Lokalizacja: Bruksela
Język C++ jest jednym z najpopularniejszych języków programowania ogólnego przeznaczenia, zarówno w zastosowaniach komercyjnych, jak i hobbystycznych.

Cechy standardów

Projekt języka C++ usiłuje zachować możliwie jak największą zgodność (na poziomie kodu źródłowego) z językiem C. Projektanci C++ za idealną uznaliby sytuację, w której język C byłby podzbiorem języka C++ (tj. każdy program w C byłby takim samym programem w C++, ale nie odwrotnie). Zgodność pomiędzy obydwoma językami nie zawsze była całkowita, ale jak dotąd ewentualne różnice były w praktyce nieistotne [1]. Większym problemem związanym ze zgodnością była niekompatybilność kompilatorów języka C++ w zakresie obsługiwanej składni - przez wiele lat programy napisane pod jednym nie działały pod innym. Biblioteki C++ związane z interfejsami systemów nie są przenośne poza ich obręb, co wynika z faktu, że takie interfejsy są specyficzne dla danego systemu i nie jest to specyficzne tylko dla C++.

Większość użytecznych programów w C++ wymaga stosowania bibliotek niestandardowych. Są one łatwo dostępne w Sieci zarówno jako produkty własnościowe, jak i jako FOSS. W szczególności programy napisane w C++ mogą korzystać z ogromnych zasobów bibliotek języka C.

Język C++ posiada swój oficjalny standard (aktualnie jest to IEC14882:2003) z 2003 r.

Język C++ nie jest własnością żadnej osoby, instytucji czy korporacji.

Właściwości języka

* Język C++ jest językiem wieloparadygmatowym [2]. Oznacza to, ze można w nim stosować jednocześnie różne style programowania, w tym programowanie proceduralne, obiektowe, generyczne, a nawet programować na poziomie asemblera.

* Język C++ zakłada statyczną kontrolę typów; posiada też elementy dynamicznej kontroli typów.

* Język C++ umożliwia bezpośrednie zarządzanie wolną pamięcią.

* Projekt języka zakłada, że żadna nowa (względem języka C) cecha języka C++ nie może mieć negatywnego wpływu na szybkość działania programu lub zapotrzebowanie na pamięć operacyjną. Dzięki temu dobrze napisany program w C++ jest z reguły co najmniej równie szybki, jak jego odpowiednik napisany w C; co więcej, dzięki możliwości zastosowania algorytmów generycznych w wielu przypadkach C++ jest wyraźnie szybszy od C (np. podczas sortowania).

* Język C++ ze względu na bardzo rozbudowaną składnię oraz surowe wymogi w zakresie wydajności kodu stanowi duże wyzwanie dla twórców kompilatorów.

* Do dziś (2007 r.) żaden wiodący kompilator nie jest w pełni zgodny z obowiązującym standardem języka, aczkolwiek ewentualne niezgodności dotyczą już tylko raczej mało pożądanych cech języka (np. implementacji słowa kluczowego export).

* Język C++ nie zmusza programistów do wyboru określonego stylu programowania czy stosowania określonych rozwiązań. Otwiera to ogromne pole do popisu dla doświadczonych programistów, jednak powoduje też, że początkujący adepci C++ z reguły tworzą kod bardzo marnej jakości, często nie mając świadomości rzeczywistych efektów działania swojego kodu.

Historia

Język C++ został stworzony w latach osiemdziesiątych XX wieku przez Bjarne'a Stroustrupa jako obiektowe rozszerzenie języka C. Poza językiem C, na definicję języka C++ miały wpływ takie języki, jak Simula (z której zaczerpnął właściwości obiektowe) oraz Algol, Ada, ML i Clu.

Początkowo język C++ był dostępny w takim standardzie, w jakim opracowano ostatnią wersję kompilatora Cfront (tłumaczący C++ na C), później opublikowano pierwszy nieformalny standard zwany ARM (Annotated Reference Manual), który sporządzili Bjarne Stroustrup i Margaret Ellis. Standard języka C++ powstał w 1998 roku (ISO/IEC 14882-1998 "Information Technology — Programming Languages — C++"). Standard ten zerwał częściowo wsteczną zgodność z ARM w swojej bibliotece standardowej; jedyne, co pozostało w stanie w miarę nienaruszonym to biblioteka iostream.

Początkowo najważniejszą rzeczą wprowadzoną w C++ w stosunku do C było programowanie obiektowe, później jednak wprowadzono do niego mnóstwo ulepszeń, czyniąc ten język wygodniejszym i bardziej elastycznym od swojego pierwowzoru. Nie od rzeczy jest też wspomnieć, że niektóre zmiany w standardzie języka C były w większości zainspirowane językiem C++ (np. słowo inline w C99).

Nazwa języka została zaproponowana przez Ricka Mascitti w 1983 roku, kiedy to po raz pierwszy użyto tego języka poza laboratorium naukowym. Odzwierciedla ona fakt, że język ten jest rozszerzeniem języka C. Wcześniej używano nazwy "C z klasami". Nazwa języka C++ nawiązuje do faktu bycia "następcą języka C", przez użycie w niej operatora inkrementacji "++". Inkrementacja to zwiększenie liczby o 1, w języku C++ do jej wykonania wykorzystywany jest w/w operator; dla przykładu:

zapis:

Język C++ został stworzony w latach osiemdziesiątych XX wieku przez Bjarne'a Stroustrupa jako obiektowe rozszerzenie języka C. Poza językiem C, na definicję języka C++ miały wpływ takie języki, jak Simula (z której zaczerpnął właściwości obiektowe) oraz Algol, Ada, ML i Clu.

Początkowo język C++ był dostępny w takim standardzie, w jakim opracowano ostatnią wersję kompilatora Cfront (tłumaczący C++ na C), później opublikowano pierwszy nieformalny standard zwany ARM (Annotated Reference Manual), który sporządzili Bjarne Stroustrup i Margaret Ellis. Standard języka C++ powstał w 1998 roku (ISO/IEC 14882-1998 "Information Technology — Programming Languages — C++"). Standard ten zerwał częściowo wsteczną zgodność z ARM w swojej bibliotece standardowej; jedyne, co pozostało w stanie w miarę nienaruszonym to biblioteka iostream.

Początkowo najważniejszą rzeczą wprowadzoną w C++ w stosunku do C było programowanie obiektowe, później jednak wprowadzono do niego mnóstwo ulepszeń, czyniąc ten język wygodniejszym i bardziej elastycznym od swojego pierwowzoru. Nie od rzeczy jest też wspomnieć, że niektóre zmiany w standardzie języka C były w większości zainspirowane językiem C++ (np. słowo inline w C99).

Nazwa języka została zaproponowana przez Ricka Mascitti w 1983 roku, kiedy to po raz pierwszy użyto tego języka poza laboratorium naukowym. Odzwierciedla ona fakt, że język ten jest rozszerzeniem języka C. Wcześniej używano nazwy "C z klasami". Nazwa języka C++ nawiązuje do faktu bycia "następcą języka C", przez użycie w niej operatora inkrementacji "++". Inkrementacja to zwiększenie liczby o 1, w języku C++ do jej wykonania wykorzystywany jest w/w operator; dla przykładu:

zapis:

Język C++ został stworzony w latach osiemdziesiątych XX wieku przez Bjarne'a Stroustrupa jako obiektowe rozszerzenie języka C. Poza językiem C, na definicję języka C++ miały wpływ takie języki, jak Simula (z której zaczerpnął właściwości obiektowe) oraz Algol, Ada, ML i Clu.

Początkowo język C++ był dostępny w takim standardzie, w jakim opracowano ostatnią wersję kompilatora Cfront (tłumaczący C++ na C), później opublikowano pierwszy nieformalny standard zwany ARM (Annotated Reference Manual), który sporządzili Bjarne Stroustrup i Margaret Ellis. Standard języka C++ powstał w 1998 roku (ISO/IEC 14882-1998 "Information Technology — Programming Languages — C++"). Standard ten zerwał częściowo wsteczną zgodność z ARM w swojej bibliotece standardowej; jedyne, co pozostało w stanie w miarę nienaruszonym to biblioteka iostream.

Początkowo najważniejszą rzeczą wprowadzoną w C++ w stosunku do C było programowanie obiektowe, później jednak wprowadzono do niego mnóstwo ulepszeń, czyniąc ten język wygodniejszym i bardziej elastycznym od swojego pierwowzoru. Nie od rzeczy jest też wspomnieć, że niektóre zmiany w standardzie języka C były w większości zainspirowane językiem C++ (np. słowo inline w C99).

Nazwa języka została zaproponowana przez Ricka Mascitti w 1983 roku, kiedy to po raz pierwszy użyto tego języka poza laboratorium naukowym. Odzwierciedla ona fakt, że język ten jest rozszerzeniem języka C. Wcześniej używano nazwy "C z klasami". Nazwa języka C++ nawiązuje do faktu bycia "następcą języka C", przez użycie w niej operatora inkrementacji "++". Inkrementacja to zwiększenie liczby o 1, w języku C++ do jej wykonania wykorzystywany jest w/w operator; dla przykładu:

zapis:

Język C++ został stworzony w latach osiemdziesiątych XX wieku przez Bjarne'a Stroustrupa jako obiektowe rozszerzenie języka C. Poza językiem C, na definicję języka C++ miały wpływ takie języki, jak Simula (z której zaczerpnął właściwości obiektowe) oraz Algol, Ada, ML i Clu.

Początkowo język C++ był dostępny w takim standardzie, w jakim opracowano ostatnią wersję kompilatora Cfront (tłumaczący C++ na C), później opublikowano pierwszy nieformalny standard zwany ARM (Annotated Reference Manual), który sporządzili Bjarne Stroustrup i Margaret Ellis. Standard języka C++ powstał w 1998 roku (ISO/IEC 14882-1998 "Information Technology — Programming Languages — C++"). Standard ten zerwał częściowo wsteczną zgodność z ARM w swojej bibliotece standardowej; jedyne, co pozostało w stanie w miarę nienaruszonym to biblioteka iostream.

Początkowo najważniejszą rzeczą wprowadzoną w C++ w stosunku do C było programowanie obiektowe, później jednak wprowadzono do niego mnóstwo ulepszeń, czyniąc ten język wygodniejszym i bardziej elastycznym od swojego pierwowzoru. Nie od rzeczy jest też wspomnieć, że niektóre zmiany w standardzie języka C były w większości zainspirowane językiem C++ (np. słowo inline w C99).

Nazwa języka została zaproponowana przez Ricka Mascitti w 1983 roku, kiedy to po raz pierwszy użyto tego języka poza laboratorium naukowym. Odzwierciedla ona fakt, że język ten jest rozszerzeniem języka C. Wcześniej używano nazwy "C z klasami". Nazwa języka C++ nawiązuje do faktu bycia "następcą języka C", przez użycie w niej operatora inkrementacji "++". Inkrementacja to zwiększenie liczby o 1, w języku C++ do jej wykonania wykorzystywany jest w/w operator; dla przykładu:

zapis:

Kod:
i=i+1; [i]// zmiennej "i" przypisujemy jej aktualną wartość, powiększoną o 1[/i]


... jest równoważny:

Kod:
i++; [i]// również powiększamy wartość zmiennej "i" o 1.[/i]


Nazwa C++ jest więc symbolicznym stwierdzeniem, iż jest to język C, unowocześniony, o znacznie większych możliwościach.

Pierwsze kompilatory języka C++, podobnie jak Cfront, były wyłącznie translatorami na język C. Kompilatory takie dostępne są i dziś. Jednym z nich jest Comeau C++ — jeden z niewielu kompilatorów oferujących pełne wsparcie dla standardu języka. Pierwszym kompilatorem natywnym (produkującym od razu kod asemblerowy) dla języka C++ był g++ z pakietu GCC, którego pierwszym autorem był Michael Tiemann, założyciel Cygnus Solutions.

Obecnie (2007) trwają prace nad rewizją i rozszerzeniem standardu C++ zwane roboczo C++0x. Wprawdzie przewidziane są nieznaczne zmiany w samym języku C++, ale rozszerzana jest przede wszystkim biblioteka standardowa języka. Rozszerzenia te znane są pod nazwą TR1 (od Technical Report No. 1) i zawierają przede wszystkim komponenty przejęte z biblioteki Boost.

Przykładowy program

Poniższy program wyświetla napis "Hello world!" (tekst po podwójnym ukośniku jest komentarzem):

Kod:
#include <iostream>

int main() // deklaracja głównej funkcji programu,
           // w tym miejscu rozpoczyna się jego wykonanie
{
   std::cout << "Hello world!" << std::endl; // wyprowadzenie tekstu na standardowe wyjście
   return 0;
}


Nowe cechy języka C++ (względem języka ANSI C)

Niektóre z nich trafiły do języka C, najpierw nieoficjalnie, później zaś zostały zestandaryzowane w C99, IEC14882:1998, IEC14882:2003. Aktualne wypracowywany jest nowy standard, który opisano w roboczym dokumencie [3]

* Klasy wraz z innymi elementami języków zorientowanych obiektowo takimi jak: dziedziczenie, metody wirtualne
* Dodatkowe ulepszenia klas, konstruktory, destruktory (język C++ był pierwszym językiem w którym użyto nazwy "konstruktor" w tym właśnie znaczeniu i pierwszym językiem, który posiadał destruktory)
* Szablony (wzorce) klas i funkcji
* Obsługa wyjątków
* Deklaracje zmiennych jako instrukcje (w ANSI C wszystkie zmienne lokalne funkcji musiały być zadeklarowane przed pierwszą jej instrukcją)
* Dynamiczna inicjalizacja zmiennych globalnych i lokalnych zmiennych statycznych (tzn. mogły być inicjalizowane wynikiem wywołanej funkcji)
* Przestrzenie nazw
* Referencje
* Operatory new i delete
* Operator zasięgu (::) (w ANSI C nie istnieje możliwość odwołania się do zmiennej globalnej o tej samej nazwie, co zmienna lokalna)
* Dynamiczna kontrola typów RTTI
* Przeciążanie funkcji
* Przeciążanie operatorów
* Wskaźniki do składowych (pól i metod)
* Funkcje rozwijalne (inline) (również C99)
* Nowy typ bool i stałe true i false (również C99, z tym że w C++ są to słowa kluczowe)
* "Szeroki" typ znakowy, wchar_t (również C89) wraz ze wszystkimi zależnościami (wiostream i reszta, nagłówek <wctype>, wstring)
* Operatory rzutowania: static_cast, dynamic_cast, reinterpret_cast i const_cast
* Pojemniki (w postaci szablonów klas, np.: vector, map, list) oraz zestaw podstawowych algorytmów (w postaci szablonów funkcji, np.: sort, find, for_each)
* Słowo kluczowe const służące do definiowania stałych symbolicznych, a także stałych wskaźników, wskaźników na stałe, stałych referencji i stałych funkcji składowych.
* Koncepty


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł:
PostNapisane: 2007-10-10, 08:05 
Offline
Avatar użytkownika

Dołączył(a): 2007-10-08, 16:18
Posty: 56
Lokalizacja: Kielce
Temat informacyjny - Zamykam

_________________
[center]"Nie ma takiej fortecy, która by się oparła osłu z workiem złota na grzbiecie." - Aleksander Wielki
Obrazek[/center]


Góra
 Zobacz profil Wyślij e-mail  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Ten wątek jest zamknięty. Nie możesz w nim pisać ani edytować postów.  [ Posty: 2 ] 

Wszystkie czasy w strefie UTC + 1


Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
 cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
opisy gg :: portal zdrowie :: sport i turystyka :: katalog dobrych stron :: ciekawostki komputerowe :: prawo i podatki :: Numizmatyka

Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO