C++ Funkcje z przykładami programów

⚡ Inteligentne podsumowanie

Funkcje w C++ Grupuj powiązane instrukcje w wielokrotnego użytku, nazwane bloki, które przyjmują dane wejściowe, przetwarzają je i zwracają dane wyjściowe. Programy łączą wbudowane funkcje biblioteczne i funkcje zdefiniowane przez użytkownika, każda z nich deklarowana, definiowana i wywoływana, aby uniknąć powtarzania kodu.

  • 🧩 Co to jest: Funkcja grupuje polecenia, które przyjmują parametry, przetwarzają je i zwracają wartość, uruchamiając wspólne zadanie z jednego bloku.
  • 📚 Wbudowane funkcje: C++ Biblioteka standardowa zawiera gotowe funkcje, takie jak sqrt(), które można wywołać bezpośrednio, bez konieczności ich pisania.
  • 🛠️. Funkcje zdefiniowane przez użytkownika: Programiści tworzą własne funkcje, nadają im unikalne nazwy i wywołują ten kod z dowolnego miejsca w programie.
  • 📝 Deklaracja i definicja: Prototyp deklaruje typ zwracany, nazwę i typy argumentów; definicja dostarcza treść funkcji.
  • 📞 Rozmowy i argumenty: Wywołanie funkcji uruchamia jej ciało; argumenty muszą odpowiadać parametrom pod względem liczby i typu, dozwolone są wartości domyślne.
  • 🤖 Pomoc AI: GitHub Copilot i podobni asystenci zapewniają wsparcie C++ sygnatury funkcji, treści i wywołania z krótkiego komentarza.

C++ Funkcje

Czym jest funkcja w C++?

Funkcja w C++ odnosi się do grupy instrukcji, które pobierają dane wejściowe, przetwarzają je i zwracają dane wyjściowe. Ideą funkcji jest łączenie typowych zadań, które są wykonywane wielokrotnie. Jeśli masz inne dane wejściowe, nie napiszesz ponownie tego samego kodu. Po prostu wywołasz funkcję z innym zestawem danych zwanym parametrami.

Każdy C++ program ma co najmniej jedną funkcję, funkcję main(). Możesz podzielić swój kod na różne funkcje. Podział ten powinien być taki, aby każda funkcja spełniała określone zadanie.

Istnieje wiele wbudowanych funkcji w programie C++ biblioteka standardowa. Możesz wywołać te funkcje w swoim programie.

Po co używać funkcji?

Z wykorzystaniem funkcji wiąże się wiele korzyści. Obejmują one:

  • Każda funkcja łączy powiązany kod. Ułatwia to programistom zrozumienie kodu.
  • Funkcje ułatwiają programowanie, eliminując powtarzanie kodu.
  • Funkcje ułatwiają ponowne wykorzystanie kodu. Możesz wywołać tę samą funkcję, aby wykonać zadanie w różnych sekcjach programu lub nawet poza programem.

Wbudowane funkcje

In C++, funkcje biblioteczne są wbudowane C++ funkcje. Aby skorzystać z tych funkcji, wystarczy je bezpośrednio wywołać/wywołać. Nie musisz sam pisać funkcji.

1 przykład:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Wyjście:

Wyjście C++ przykład wbudowanej funkcji sqrt()

Oto zrzut ekranu kodu:

C++ kod wywołujący wbudowaną funkcję sqrt() z cmath

Code Wyjaśnienie:

  1. Dołącz plik nagłówkowy iostream do naszego programu, aby móc korzystać z jego funkcji.
  2. Dołącz bibliotekę cmath, aby móc korzystać z jej funkcji. Chcemy skorzystać ze zdefiniowanej w nim funkcji sqrt().
  3. Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
  4. Wywołaj funkcję main(). Logikę programu należy dodać w treści tej funkcji.
  5. Zadeklaruj dwie zmienne typu double, num i squareRoot.
  6. Wydrukuj tekst na konsoli. Tekst prosi użytkownika o wprowadzenie numeru.
  7. Odczytaj dane wprowadzone przez użytkownika z klawiatury. Dane wejściowe staną się wartością zmiennej num.
  8. Wywołaj funkcję biblioteczną sqrt(), która oblicza pierwiastek kwadratowy z liczby. Przekazaliśmy parametr num do funkcji, co oznacza, że ​​obliczy ona pierwiastek kwadratowy z num. Ta funkcja jest zdefiniowana w bibliotece cmath.
  9. Wydrukuj liczbę wprowadzoną przez użytkownika, jej pierwiastek kwadratowy i inny tekst na konsoli.
  10. Program musi zwrócić wartość po pomyślnym zakończeniu.
  11. Koniec treści funkcji main().

Funkcje zdefiniowane przez użytkownika

C++ pozwala programistom definiować własne funkcje. Celem funkcji jest grupowanie powiązanego kodu. Następnie kod otrzymuje unikalny identyfikator, nazwę funkcji.

Funkcję można wywołać/wywołać z dowolnej innej części programu. Następnie wykona kod zdefiniowany w swoim ciele.

2 przykład:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Wyjście:

Wyjście C++ zdefiniowana przez użytkownika funkcja sayHello()

Oto zrzut ekranu kodu:

C++ kod definiujący i wywołujący funkcję zdefiniowaną przez użytkownika

Code Wyjaśnienie:

  1. Dołącz plik nagłówkowy iostream do naszego programu, aby móc korzystać z jego funkcji.
  2. Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
  3. Utwórz funkcję zdefiniowaną przez użytkownika o nazwie sayHello().
  4. Wydrukuj tekst na konsoli po wywołaniu funkcji sayHello().
  5. Koniec treści funkcji sayHello().
  6. Wywołaj funkcję main(). Logikę programu należy dodać w treści tej funkcji.
  7. Wywołaj/wywołaj funkcję o nazwie sayHello().
  8. Program musi zwrócić wartość po pomyślnym zakończeniu.
  9. Koniec treści funkcji main().

Kompilator musi znać funkcję przed jej użyciem.

Deklaracja funkcji/prototyp

Jeśli po funkcji main() zdefiniujesz funkcję zdefiniowaną przez użytkownika, funkcja C++ kompilator zwróci błąd. Powodem jest to, że kompilator nie zna szczegółów funkcji zdefiniowanej przez użytkownika. Szczegóły obejmują jej nazwę, typy argumentów i ich typy zwracane.

In C++, deklaracja/prototyp funkcji deklaruje funkcję bez ciała. Daje to kompilatorowi szczegóły funkcji zdefiniowanej przez użytkownika.

W deklaracji/prototypie podajemy typ zwracany, nazwę funkcji i typy argumentów. Nazwy argumentów nie są dodawane. Jednak dodanie nazw argumentów nie generuje błędu.

C++ deklaracja funkcji/diagram składni prototypu

Definicja funkcji

Celem deklaracji funkcji jest poinformowanie funkcji C++ kompilator o nazwie funkcji, typie zwracanym i parametrach. Definicja funkcji mówi C++ kompilator o treści funkcji.

C++ diagram struktury definicji funkcji

Składnia

return_datatype function_name( parameters) {
   function body 
}

Z powyższego wynika, że ​​definicja funkcji ma nagłówek i treść funkcji. Oto wyjaśnienie parametrów:

  • return_datatype – Niektóre funkcje zwracają wartość. Ten parametr określa typ danych zwracanej wartości. Niektóre funkcje nie zwracają wartości. W takim przypadku wartość tego parametru staje się pusta.
  • nazwa_funkcji — jest to nazwa funkcji. Nazwa funkcji i parametry tworzą sygnaturę funkcji.
  • Parametry – typ, kolejność i liczba parametrów funkcji. Niektóre funkcje nie mają parametrów.
  • ciało funkcji – są to instrukcje określające, co funkcja będzie robić.

Wywołanie funkcji

Aby funkcja mogła wykonać określone zadanie i zwrócić wynik, musi zostać wywołana. Kiedy wywołujesz funkcję, wykonuje ona instrukcje dodane w jej treści.

Funkcja jest wywoływana po nazwie. Jeśli funkcja przyjmuje parametry, ich wartości należy przekazać podczas wywołania. Jeśli funkcja nie przyjmuje żadnych parametrów, nie należy przekazywać żadnych wartości podczas wywołania.

C++ diagram składni wywołania funkcji

Przekazywanie argumentów

In C++, argument/parametr to dane przekazywane do funkcji podczas jej wywołania. Wartości muszą zostać zainicjowane odpowiednimi zmiennymi.

Podczas wywołania funkcji argumenty muszą być zgodne pod względem liczby. Oznacza to, że przekazywane wartości muszą być równe liczbie parametrów. Wartości muszą również odpowiadać typowi parametrów. Jeśli pierwszy parametr jest liczbą całkowitą, przekazywana do niego wartość musi być liczbą całkowitą.

Parametrom funkcji można przypisać wartości domyślne. Jeśli podczas wywołania funkcji nie zostanie przekazana wartość parametru, zostanie użyta wartość domyślna.

Przykład 3: Jak napisać i wywołać funkcję

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Wyjście:

Wyjście C++ funkcja addFunc() zwracająca sumę

Oto zrzut ekranu kodu:

C++ kod przekazujący argumenty do funkcji addFunc()

Code Wyjaśnienie:

  1. Dołącz plik nagłówkowy iostream do naszego programu, aby móc korzystać z jego funkcji.
  2. Dołącz przestrzeń nazw std do naszego kodu, aby używać jej klas bez wywoływania jej.
  3. Zadeklaruj funkcję o nazwie addFunc(), która przyjmuje dwa parametry całkowite. W ten sposób powstaje prototyp funkcji.
  4. Wywołaj funkcję main(). Logikę programu należy dodać w treści tej funkcji.
  5. Zadeklaruj trzy zmienne całkowite: x, y i sumę.
  6. Wydrukuj tekst na konsoli. Tekst prosi użytkownika o wprowadzenie dwóch liczb.
  7. Odczytaj dane wejściowe użytkownika z klawiatury. Użytkownik powinien wprowadzić dwie liczby dla zmiennych x i y, oddzielone spacją.
  8. Wywołaj funkcję addFunc() i przekaż jej parametry x i y. Funkcja będzie działać na tych parametrach i przypisze dane wyjściowe do zmiennej sum.
  9. Wydrukuj wartości zmiennych x, y i sumę na konsoli wraz z innym tekstem.
  10. Funkcja musi zwracać wartość po pomyślnym zakończeniu.
  11. Koniec treści funkcji main().
  12. Definicja funkcji. Definiujemy funkcję addFunc(). Określimy, co funkcja będzie robić w swoim ciele, czyli { }.
  13. Deklarowanie zmiennej całkowitej o nazwie addFunc.
  14. Dodanie wartości parametrów num1 i num2 i przypisanie wyniku do zmiennej addFunc.
  15. Funkcja addFunc() powinna zwrócić wartość zmiennej addFunc.
  16. Koniec treści funkcji, czyli definicji funkcji.

FAQ

Wywołanie przez wartość kopiuje argument, więc zmiany wewnątrz funkcji nie wpływają na oryginał. Wywołanie przez referencję przekazuje zmienną za pomocą znaku ampersand, pozwalając funkcji na bezpośrednią modyfikację wartości wywołującego. C++ domyślnie jest to wywołanie według wartości.

Przeciążanie funkcji pozwala kilku funkcjom mieć tę samą nazwę, ale różnić się liczbą lub typem parametrów. Kompilator wybiera poprawną wersję spośród przekazanych argumentów, poprawiając czytelność powiązanych operacji.

Funkcja inline prosi kompilator o wstawienie swojego ciała w każdym miejscu wywołania zamiast wykonywania standardowego wywołania. Pozwala to ograniczyć obciążenie w przypadku małych funkcji, choć kompilator może zignorować wskazówkę.

Funkcja rekurencyjna wywołuje samą siebie, dzieląc problem na mniejsze podproblemy. Wymaga przypadku bazowego, który zatrzyma rekurencję; w przeciwnym razie wywołania będą się powtarzać w nieskończoność i przepełnią stos. Silnia jest klasycznym przykładem.

Przekazujesz parametr jako wskaźnik lub tablicę o określonym rozmiarze i zazwyczaj wysyłasz jej długość osobno, ponieważ tablica rozpada się na wskaźnik. Zobacz przekazywanie tablice w C++ Funkcje aby zobaczyć kompletne przykłady rozwiązań.

Funkcja zwraca bezpośrednio jedną wartość, ale można zwrócić ich kilka, używając parametrów referencyjnych, struktury, std::pair, std::tuple lub std::vector. Powiązania strukturalne rozpakowują następnie zwróconą krotkę w miejscu wywołania.

Tak. Asystenci kodowania AI zamieniają komentarz w prostym języku w kompletny C++ Funkcja sugeruje sygnaturę, treść i typ zwracany. Refaktoryzują również długie funkcje, choć warto przejrzeć wygenerowaną logikę.

Drugi pilot GitHub autouzupełnianie C++ Definiuje definicje funkcji, prototypy i wywołania z Twoich komentarzy lub nazw, proponuje przeciążenia i tworzy wersje robocze testów jednostkowych. Używa nagłówków referencyjnych dla kontekstu, ale każda sugestia wymaga przeglądu.

Podsumuj ten post następująco: