do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
KURS JĘZYKA C++ PODSTAWY
00. Informacje ogólne - wstęp 01. Praca z konsolą - początki - cout 02. Zmienne (int, float, double) 03. Konsola cd. - cin 04. Zmienne tekstowe - (char, string) 05. Operatory 06. Instrukcje warunkowe (if - else, switch - case) 07. Pętle (for, while) 08. Instrukcje warunkowe cd. 09. Break, Continue 10. Funkcje 11. Zakresy ważności 12. Tablice zmiennych 13. Mała powtórka :))) 14. Struct - struktury 15. String, Vector - wstęp do STL 16. Wskaźniki, referencje 16a. Wskaźnik do typów prostych 16b. Wskaźnik do funkcji 16c. Operatory new i delete 16d. Referencje 17. Pliki źródłowe i nagłówkowe Zadania powtórzeniowe 18. Class - klasy 19. Konstruktor , destruktor 20. Argumenty domyślne, przeciążanie (przeładowanie) funkcji i operatorów C++ FAQ: 01. Operacje na plikach, odczyt/zapis02. Nie działa mi polecenie gotoxy() co robić ? 03. Jaki podręcznik do nauki C++ ? ostatnia aktualizacja: 29.08.2005 PLIKI ŹRÓDŁÓWE I NAGŁÓWKOWE
Pierwszym elementem który wprowadziliśmy aby trochę zapanować nad rozrastającym się kodem naszych programów były funkcje.
Dzięki nim możemy przenieść w osobne miejsce kawałek naszego programu który np. może występować wiele razy w praktycznie identycznej
postaci w naszym programie, niepotrzebnie zwiększając kod i tym samym zmniejszając jego czytelność.
Przeniesienie takich kawałków programu do funkcji ma dodatkowo tą zaletę, że w przypadku potrzeby jakichś zmian w programie, zmian takich dokonujemy tylko w jednym miejscu w funkcji a nie musimy wyszukiwać wszystkich miejsc w programie gdzie dany kawałek kodu się pojawił i tam go poprawiać. Wydaje mi się, że powyższy przykład dosyć jasno obrazuje sytuację. Ale co gdy nasz program rozrasta się coraz bardziej i nawet tych funkcji jest już tak wiele, że zaczynamy się powoli w nich gubić? Tu z pomocą przychodzą nam tzw. pliki źródłowe i nagłówkowe. Aby szybko wyjaśnić o co w tym chodzi utwórzmy sobie nowy projekt. Teraz dodaj do projektu nowy plik źródłowy: menu File opcja New Source File (skrót: CTRL+U). Otworzyło nam się nowe okienko do wpisywania kodu. Wpiszmy na próbę coś prostego do naszego nowego pliku źródłowego. Teraz spróbujmy uruchomić nasz program, Dev C od razu zapyta nas o nazwę nowo utworzonego pliku (dla bezpieczeństwa przed uruchomieniem chce nam go zapisać) podajemy nazwę np NOWY i wybieramy rozszerzenie cpp. Wszystko powinno się skompilować bez błędów i program się uruchomi. W programie głównym mamy tylko funkcję getch() więc właściwie nic wielkiego się nie stanie po prostu nasz program poczeka aż naciśniemy dowolny klawisz i zakończy swoje działanie. Wszystko jest w porządku możemy przystąpić do kolejnego kroku którym jest uruchomienie naszej zewnętrznej funkcji o nazwie Wyswielnapis() w naszym programie głównym. Niby wszystko jest na miejscu ale przy próbie włączenia programu otrzymujemy komunikat o błędzie. Kompilator informuje nas, że nie wie co to za funkcja Wyswielnapis(), po prostu nie wie co ma zrobić. I taka też jest prawda kompilator traktuje każdy plik jaki dołączymy do projektu jako coś osobnego i nie zmieni zdania do czasu aż nie poinformujemy go, że jednak powinien dany plik potraktować jako część naszego programu głównego. Aby to zrobić musimy utworzyć tzw. plik nagłówkowy który stanowić będzie łącznik między programem głównym a plikiem dodatkowym cpp. Dodaj do projektu nowy plik (CTRL+U) wpisz w nim void Wyswielnapis(); Zapisz plik pod nazwą NOWY i rozszerzeniem typu h. Mamy teraz w naszym projekcie 3 pliki pozostaje je tylko połączyć ze sobą. Łącznikiem będzie plik NOWY.h Teraz można już uruchomić nasz proram. Jak widać korzysta on z funkcji umieszczonej w pliku zewnętrznym do wyświetlenia napisu. Nadszedł czas na kilka słów dodatkowych wyjaśnień: - czemu w pliku NOWY.cpp na początku jest dołączony plik: #include <iostream.h> jak widać w kodzie mamy użytą funkcję cout a jak wiemy "opis" działania tej funkcji znajduje się w pliku iostream.h i w związku z tym dołączenie go jest konieczne do poprawnego działania - po co w programie głównym trzeba było dołączyć plik NOWY.h, do czego on w ogóle jest potrzebny? otóż jak już kiedyś wspomniałem w plikach "*.h" znajdują się "opisy" działania pewnych funkcji, teraz właśnie można zobaczyć na prostym przykładzie co to w ogóle jest. W naszym pliku NOWY.cpp utworzyliśmy sobie funkcję, aby program główny wiedział o niej wszystko co potrzebuje do jej obsługi tworzymy właśnie plik NOWY.h z informacjami o funkcji, właściwie te informacje to pierwsza linia naszej tworzonej funkcji, w linii tej zawarte są najważniejsze informacje o jej działaniu takie jak: - czy funkcja zwraca jakiś rezultat swojego działania? (tu nie : void) - czy funkcja przyjmuje jakieś parametry ? (w tym przypadku nie) oczywiście na końcu tej linii musimy dać znak ";" informujący, że to tylko deklaracja funkcji a nie jej treść w przeciwnym wypadku przy kompilacji wystąpi błąd. Ogólniej mówiąc w plikach typu *.cpp (lub *.c) znajdują się ciała (treść) funkcji a w plikach *.h tylko ich deklaracje. - czemu nazwy poprzednio dołączanych plików instrukcją include znajdowały się w znakach < > a teraz w " " ? znaki < > informują kompilator, że danego pliku należy szukać w katalogu systemowym programu czyli tam gdzie program został zainstalowany, aby poznać katalog systemowy wystarczy wejść do menu Options->Compiler options w zakładce Directories mamy podane katalogi z których program pobiera standardowe biblioteki c++ znaki " " informują kompilator, że danego pliku należy szukać w katalogu z bieżącym projektem. |
|