Język C++ Różnice między C a C++

Podobne dokumenty
Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza)

Wskaźniki. Informatyka

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Operacje wejścia/wyjścia odsłona pierwsza

Podstawy programowania skrót z wykładów:

Lab 9 Podstawy Programowania

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Przesłanianie nazw, przestrzenie nazw

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie obiektowe w C++ Wykład 1

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Informatyka 2. Informatyka 2. Wykład nr 1 ( ) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Bibliografia 1. B. Stroustrup. Jezyk C++. Wydawnictwo Naukowo-Techniczne, Warszawa,

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wstęp do Programowania 2

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Wstęp do programowania. Wykład 1

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Język C++ zajęcia nr 1

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

W przypadku STL w specyfikacji nazwy pliku nagłówkowego brak rozszerzenia tj. <string> <string.h> zamiast

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Programowanie 2. Język C++. Wykład 3.

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Język C++ wykład VIII

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Programowanie w języku C++

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Pliki wykład 2. Dorota Pylak

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Operacje wejścia/wyjścia (odsłona druga) - pliki

( wykł. dr Marek Piasecki )

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Programowanie i struktury danych

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Zaawansowane programowanie w języku C++ Biblioteka standardowa

Przeciążenie (przeładowanie nazw) funkcji

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Podstawy programowania w C++

Programowanie (C++) NI 5

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

Języki i paradygmaty programowania

Część 4 życie programu

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++

Podstawy Programowania Obiektowego

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

Wykład 1: Wskaźniki i zmienne dynamiczne

dr inż. Paweł Myszkowski Wykład nr 8 ( )

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Podstawy Programowania

Programowanie komputerowe. Zajęcia 1

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie w językach

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Techniki Programowania wskaźniki 2

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Podstawy programowania w języku C++

I - Microsoft Visual Studio C++

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do programowania

Pliki wykład 2. Dorota Pylak

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wstęp do Programowania 2

Języki programowania obiektowego Nieobiektowe elementy języka C++

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Transkrypt:

Język C++ Różnice między C a C++

Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci Strumienie wejścia/wyjścia Podsumowanie

C++ jako rozszerzenie języka C ulepszony język C abstrakcja danych (definiowanie własnych typów - klas) programowanie obiektowe (dziedziczenie, polimorfizm)

Różnice ogólne Nowe słowa kluczowe: class, delete, new, friend Komentarze /* Komentarz wieloliniowy w C i C++ */ // Komentarz jednoliniowy w C++ Wskaźniki typu void W C wskaźniki dowolnego typu mogą być przydzielane do wskaźników typu void i odwrotnie. W C++ wymagana jest jawna konwersja.

Typy Typ znakowy W C pojedyncze znaki np. x \n są typu int. W C++ pojedyncze znaki są typu char. Typ wyliczeniowy W C++ zmiennej danego typu wyliczeniowego można przypisać jedynie stałą należącą do definicji tego typu. W C++ przy deklaracji zmiennych typu wyliczeniowego można pominąć słowo enum. W C++ można definiować lokalne typy wyliczeniowe (w obrębie struktur lub klas)

Deklaracje zmiennych W C++ deklaracja jest typem instrukcji. Można deklarować zmienne w dowolnym miejscu programu.

Struktury i unie W C++ przy deklaracji zmiennych typów strukturalnych można pominąć słowo struct. struct punkt { int x; int y; }; struct punkt p; /* zmienna w C i C++ */ punkt p; // zmienna w C++ W C++ struktury i unie są klasami

Domyślne argumenty funkcji

Przeciążanie funkcji Definiowanie zbioru funkcji o tej samej nazwie, różniących się liczbą i/lub typem parametrów void fun(int a) {... } void fun(float a) {... } Uwaga! Przeciążanie funkcji w połączeniu z argumentami domyślnymi może prowadzić do niejednoznaczności - błędu.

Referencje W C++ można tworzyć tzw. zmienne referencyjne. Jeśli zadeklarujemy zmienną referencyjną do innej zmiennej, to jakiekolwiek zmiany wartości dowolnej z powiązanych w ten sposób zmiennych będą odnosiły się również do drugiej z nich.

Referencje c. d. Referencja jest najczęściej wykorzystywana w funkcjach modyfikujących swoje argumenty. (W C konieczne było w tym celu przekazywanie do funkcji wskaźników do zmiennych)

Dynamiczny przydział pamięci W C++ operatory new i delete (W C malloc, calloc, realloc, free, sizeof, konwersje wskaźników z void*)

Dynamiczny przydział pamięci (2)

Dynamiczny przydział pamięci (3) Obiekty utworzone za pomocą new istnieją do momentu ich jawnego usunięcia operatorem delete Obiekty takie nie maja nazwy; operowanie na nich tylko za pomocą wskaźników Po utworzeniu zawierają "śmieci"

Dynamiczny przydział pamięci (4) Próba usunięcia już usuniętego obiektu operatorem delete kończy się błędem "... access violation..." Rozwiązanie: zerowanie wskaźnika po jego usunięciu

Strumieniowe wejście/wyjście Strumienie (iostream.h): wejściowy: cin (klawiatura) // nie wczytuje spacji! wyjściowy: cout (ekran) wyjściowy dla błędów: cerr (ekran) wyjściowy dla błędów: clog (buforowany, ekran) Operatory: >> - wejście << - wyjście

Przestrzenie nazw Zapewniają lokalność nazw w kodzie, pozwalając uniknąć konfliktów nazw Domyślnie nazwy należą do globalnej przestrzeni nazw Nie były dostępne w pierwszych wersjach C++ Stare książki, tutoriale, mogą ich nie uwzględniać Deklaracja przestrzeni nazw: namespace przestrzen { } Odwołanie do nazwy z innej przestrzeni nazw: przestrzen::nazwa Dyrektywa using pozwala na odwołania do nazw z innej przestrzeni bez prefiksu using namespace przestrzen; using przestrzen::nazwa;

C++ Standard Library Standardowa biblioteka C++ (objęta standardem ISO języka C++) Kolekcja podstawowych klas i funkcji Kontenery (list, map, set, ) Łańcuchy znaków (string, regex) Strumienie (istream, ostream, ) Obiekty strumieni (cin, cout, ) Pliki nagłówkowe bez rozszerzenia *.h Składniki zadeklarowane w przestrzeni nazw std

Przestrzenie nazw Przykład 1 #include<iostream> namespace space1 { void fun() { std::cout << "Hello from space1!" << std::endl; } } namespace space2 { void fun() { std::cout << "Hello from space2!\n" << std::endl; } } int main() { space1::fun(); space2::fun(); }

Przestrzenie nazw Przykład 2 #include<iostream> // using namespace std; // niezalecane using std::cout; using std::endl; namespace space1 { void fun() { cout << "Hello from space1!" << endl; } } namespace space2 { void fun() { cout << "Hello from space2!\n" << endl; } } int main() { space1::fun(); space2::fun(); }

Literatura Bjarne Stroustrup, Język C++ Bruce Eckel, Thinking in C++ Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++ Paweł Chomicz, Robert Ulijasz, Programowanie w języku C i C++...