2.x — Podsumowanie rozdziału 2 i quiz

Przegląd rozdziału

A funkcja to ciąg instrukcji wielokrotnego użytku, zaprojektowany do wykonania określonego zadania. Nazywa się funkcje, które sam piszesz zdefiniowane przez użytkownika funkcje.

A wywołanie funkcji jest wyrażeniem, które nakazuje procesorowi wykonanie funkcji. Funkcja inicjująca wywołanie funkcji to gość, a wywoływana funkcja to wywoływany lub zwany funkcjonować. Podczas wywoływania funkcji nie zapomnij o umieszczeniu nawiasów.

Nawiasy klamrowe i instrukcje w definicji funkcji nazywane są ciało funkcyjne.

Funkcja zwracająca wartość nazywa się a funkcja zwracająca wartość. Słowo kluczowe typ zwrotu funkcji wskazuje typ wartości, jaką funkcja zwróci. The oświadczenie zwrotne określa konkret wartość zwracana która jest zwracana dzwoniącemu. Wartość zwracana jest kopiowana z funkcji z powrotem do osoby wywołującej — proces ten nazywa się zwrócić według wartości. Niezwrócenie wartości z funkcji innej niż void spowoduje niezdefiniowane zachowanie.

Wartość zwracana przez funkcję głównego nazywa się kod stanui informuje system operacyjny (i inne programy, które wywołały Twój), czy program został wykonany pomyślnie, czy nie. Zgodnie z konsensusem wartość zwracana wynosząca 0 oznacza sukces, a wartość zwracana różna od zera oznacza porażkę.

Praktyka SUCHY programowanie – „nie powtarzaj się”. Użyj zmiennych i funkcji, aby usunąć nadmiarowy kod.

Funkcje zwracające typ próżnia nie zwracaj wartości wywołującemu. Funkcja, która nie zwraca wartości, nazywa się a funkcja pusta lub funkcja nie zwracająca wartości. Nie można wywoływać funkcji pustych, gdy wymagana jest wartość.

Instrukcja return, która nie jest ostatnią instrukcją funkcji, nazywa się an wczesnym powrotem. Taka instrukcja powoduje, że funkcja natychmiast wraca do osoby wywołującej.

A parametr funkcji jest zmienną używaną w funkcji, której wartość jest dostarczana przez osobę wywołującą funkcję. Jakiś argument to konkretna wartość przekazywana od obiektu wywołującego do funkcji. Kiedy argument jest kopiowany do parametru, jest to wywoływane przekazać wartość.

Wywoływane są parametry funkcji i zmienne zdefiniowane w treści funkcji zmienne lokalne. Czas, w którym zmienna istnieje, nazywa się jej życie. Zmienne są tworzone i niszczone w czas wykonania, czyli wtedy, gdy program jest uruchomiony. Zmienna zakres określa, gdzie można go zobaczyć i wykorzystać. Kiedy zmienną można zobaczyć i wykorzystać, mówimy, że tak w zakresie. Kiedy nie można tego zobaczyć, nie można go użyć i mówimy, że tak jest poza zakresem. Zakres jest czas kompilacji co oznacza, że ​​jest ona wymuszana w czasie kompilacji.

Białe znaki odnosi się do znaków używanych do celów formatowania. W C++ obejmuje to spacje, tabulatory i znaki nowej linii.

A deklaracja naprzód pozwala nam poinformować kompilator o istnieniu identyfikatora przed faktycznym zdefiniowaniem identyfikatora. Aby napisać deklarację forward dla funkcji, używamy a prototyp funkcji, który zawiera typ zwracanej funkcji, nazwę i parametry, ale bez treści funkcji, po której następuje średnik.

A definicja faktycznie implementuje (dla funkcji i typów) lub tworzy instancję (dla zmiennych) identyfikatora. Deklaracja deklaracja jest instrukcją, która informuje kompilator o istnieniu identyfikatora. W C++ wszystkie definicje służą jako deklaracje. Czyste deklaracje to deklaracje, które nie są jednocześnie definicjami (takie jak prototypy funkcji).

Większość nietrywialnych programów zawiera wiele plików.

Gdy dwa identyfikatory zostaną wprowadzone do tego samego programu w sposób uniemożliwiający kompilatorowi lub linkerowi ich rozróżnienie, kompilator lub linker wystąpi błąd z powodu kolizja nazewnictwa. A przestrzeń nazw gwarantuje, że wszystkie identyfikatory w obrębie przestrzeni nazw są unikalne. Przestrzeń nazw std jest jedną z takich przestrzeni nazw.

Klasa preprocesor to proces, który uruchamia kod przed jego kompilacją. Dyrektywy są specjalnymi instrukcjami dla preprocesora. Dyrektywy zaczynają się od symbolu # i kończą znakiem nowej linii. A Makro to reguła definiująca sposób konwersji tekstu wejściowego na zastępczy tekst wyjściowy.

Pliki nagłówkowe to pliki przeznaczone do propagowania deklaracji do plików kodu. W przypadku korzystania z dyrektywy #include dyrektywa #include jest zastępowana zawartością dołączonego pliku. Dołączając nagłówki, używaj nawiasów ostrych, gdy dołączasz nagłówki systemowe (np. te ze standardowej biblioteki C++), a cudzysłowy umieszczaj w przypadku dołączania nagłówków zdefiniowanych przez użytkownika (tych, które piszesz). Dołączając nagłówki systemowe, uwzględnij wersje bez rozszerzenia .h, jeśli takie istnieją.

Ochronniki nagłówków zapobiegają wielokrotnemu włączeniu zawartości nagłówka do danego pliku kodu. Nie zapobiegają one włączeniu zawartości nagłówka do wielu różnych plików kodu.

Czas quizu

Pamiętaj, aby skorzystać z funkcji automatycznego formatowania edytora, aby zachować spójność formatowania i ułatwić czytanie kodu.

Pytanie nr 1

Napisz program jednoplikowy (o nazwie main.cpp), który odczyta od użytkownika dwie oddzielne liczby całkowite, dodaje je do siebie, a następnie podaje wynik. Program powinien wykorzystywać trzy funkcje:

  • Do pobrania (i zwrócenia) od użytkownika pojedynczej liczby całkowitej należy użyć funkcji o nazwie „readNumber”.
  • Do wypisywania odpowiedzi należy użyć funkcji o nazwie „writeAnswer”. Funkcja ta powinna przyjmować pojedynczy parametr i nie mieć wartości zwracanej.
  • Do sklejenia powyższych funkcji należy użyć funkcji main().

Pokaż wskazówkę

Pokaż wskazówkę

Pokaż rozwiązanie

Pytanie nr 2

Zmodyfikuj program napisany w ćwiczeniu nr 1 tak, aby readNumber() i writeAnswer() znajdują się w oddzielnym pliku o nazwie „io.cpp”. Użyj deklaracji forward, aby uzyskać do nich dostęp z funkcji main().

Jeśli masz problemy, upewnij się, że „io.cpp” jest poprawnie dodany do Twojego projektu, aby został skompilowany.

Pokaż rozwiązanie

Pytanie nr 3

Zmodyfikuj program, który napisałeś w punkcie 2, tak aby korzystał z pliku nagłówkowego (o nazwie io.h) w celu uzyskania dostępu do funkcji, zamiast używać deklaracji forward bezpośrednio w plikach kodu (.cpp). Upewnij się, że Twój plik nagłówkowy używa zabezpieczeń nagłówka.

Pokaż rozwiązanie

Jeśli skompilujesz swój program i otrzymasz takie błędy:

unresolved external symbol "int __cdecl readNumber(void)" (?readNumber@@YAHXZ)
undefined reference to `readNumber()'

Wtedy prawdopodobnie zapomniałeś uwzględnić io.cpp w swoim projekcie, więc definicje readNumber() (oraz writeAnswer()) nie są wkompilowane do twojego projekt.

guest
Twój adres e-mail nie zostanie wyświetlony
Znalazłeś błąd? Zostaw komentarz powyżej!
Komentarze związane z poprawkami zostaną usunięte po przetworzeniu, aby pomóc zmniejszyć bałagan. Dziękujemy za pomoc w ulepszaniu witryny dla wszystkich!
Awatary z https://gravatar.com/ są połączone z podanym adresem e-mail.
Powiadamiaj mnie o odpowiedziach:  
648 Komentarze
Najnowsze
Najstarsze Najczęściej głosowane
Wbudowane opinie
Wyświetl wszystkie komentarze