C++ Funktioner med programexempel

Vad är en funktion i C++?

A fungera in C++ hänvisar till en grupp av påståenden som tar input, bearbetar den och returnerar en utdata. Tanken bakom en funktion är att kombinera vanliga uppgifter som görs upprepade gånger. Om du har olika ingångar kommer du inte att skriva samma kod igen. Du kommer helt enkelt att anropa funktionen med en annan uppsättning data som kallas parametrar.

Varje C++ programmet har minst en funktion, main()-funktionen. Du kan dela upp din kod i olika funktioner. Denna indelning bör vara sådan att varje funktion gör en specifik uppgift.

Det finns många inbyggda funktioner i C++ standardbibliotek. Du kan anropa dessa funktioner i ditt program.

Varför använda funktioner?

Det finns många fördelar förknippade med användningen av funktioner. Dessa inkluderar:

  • Varje funktion sätter ihop relaterad kod. Detta gör det lättare för programmerare att förstå kod.
  • Funktioner gör programmering enklare genom att eliminera kodupprepning.
  • Funktioner underlättar kodåteranvändning. Du kan anropa samma funktion för att utföra en uppgift i olika delar av programmet eller till och med utanför programmet.

Inbyggda funktioner

In C++ biblioteksfunktioner är inbyggda C++ funktioner. För att använda dessa funktioner, anropar/ringar du dem helt enkelt direkt. Du behöver inte skriva funktionerna själv.

Exempel 1:

#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;
}

Produktion:

Inbyggda funktioner

Här är en skärmdump av koden:

Inbyggda funktioner

Kodförklaring:

  1. Inkludera iostream-huvudfilen i vårt program för att använda dess funktioner.
  2. Inkludera cmath-biblioteket för att använda dess funktioner. Vi vill använda funktionen sqrt() definierad i den.
  3. Inkludera std-namnområdet i vår kod för att använda dess klasser utan att anropa det.
  4. Anropa main()-funktionen. Programlogiken bör läggas till i kroppen av denna funktion.
  5. Deklarera två dubbla variabler, num och kvadratrot.
  6. Skriv ut lite text på konsolen. Texten ber användaren att ange ett nummer.
  7. Läs användarinmatning från tangentbordet. Ingången blir värdet för variabel num.
  8. Anropa biblioteksfunktionen sqrt(), som beräknar kvadratroten ur ett tal. Vi skickade parametern num till funktionen, vilket betyder att den kommer att beräkna kvadratroten av num. Denna funktion är definierad i cmath-biblioteket.
  9. Skriv ut numret som angetts av användaren, dess kvadratrot och lite annan text på konsolen.
  10. Programmet måste returnera värde efter framgångsrikt slutförande.
  11. Slutet på huvuddelen av funktionen main().

Användardefinierade funktioner

C++ låter programmerare definiera sina egna funktioner. Syftet med funktionen är att gruppera relaterad kod. Koden får sedan en unik identifierare, funktionsnamnet.

Funktionen kan anropas/anropas från vilken annan del av programmet som helst. Den kommer sedan att exekvera koden som definierats i dess kropp.

Exempel 2:

#include <iostream>
using namespace std;

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

int main() {

	sayHello();

	return 0;
}

Produktion:

Användardefinierade funktioner

Här är en skärmdump av koden:

Användardefinierade funktioner

Kodförklaring:

  1. Inkludera iostream-huvudfilen i vårt program för att använda dess funktioner.
  2. Inkludera std-namnområdet i vår kod för att använda dess klasser utan att anropa det.
  3. Skapa en användardefinierad funktion som heter sayHello().
  4. Skriv ut lite text på konsolen när funktionen sayHello() anropas.
  5. Slutet på brödtexten för sayHello()-funktionen.
  6. Anropa main()-funktionen. Programlogiken bör läggas till i kroppen av denna funktion.
  7. Anropa/anropa funktionen som heter sayHello().
  8. Programmet måste returnera värde efter framgångsrikt slutförande.
  9. Slutet på huvuddelen av funktionen main().

Funktionsdeklaration/Prototyp

Om du definierar en användardefinierad funktion efter main()-funktionen, C++ kompilator kommer att returnera ett fel. Anledningen är att kompilatorn inte känner till detaljerna för den användardefinierade funktionen. Detaljerna inkluderar dess namn, typerna av argument och deras returtyper.

In C++, deklarerar funktionsdeklarationen/prototypen en funktion utan kropp. Detta ger kompilatorn information om den användardefinierade funktionen.

Funktionsdeklaration/Prototyp

I deklarationen/prototypen inkluderar vi returtypen, funktionsnamnet och argumenttyper. Namnen på argumenten läggs inte till. Men att lägga till argumentnamnen genererar inget fel.

Funktionsdefinition

Syftet med funktionsdeklarationen är att berätta C++ kompilator om funktionsnamn, returtyp och parametrar. En funktionsdefinition talar om för C++ kompilator om funktionskroppen.

Funktionsdefinition/prototyp

syntax

return_datatype function_name( parameters) {
   function body 
}

Från ovanstående har en funktionsdefinition funktionshuvudet och kroppen. Här är en förklaring av parametrarna:

  • return_datatype- Vissa funktioner returnerar värde. Denna parameter anger datatypen för returvärdet. Vissa funktioner returnerar inte värde. I så fall blir värdet på denna parameter ogiltigt.
  • funktionsnamn- Detta är namnet på funktionen. Funktionens namn och parametrar bildar funktionssignaturen.
  • Parametrar- Detta är typen, ordningen och antalet funktionsparametrar. Vissa funktioner har inga parametrar.
  • function body-detta är uttalanden som definierar vad funktionen ska göra.

Funktionsanrop

För att en funktion ska utföra den angivna uppgiften och returnera utdata måste den anropas. När du anropar en funktion kör den de påståenden som lagts till i dess kropp.

Funktionsanrop

Ett program kallas vid sitt namn. Om funktionen tar parametrar ska deras värden skickas under samtalet. Om tjänsten inte tar några parametrar, skicka inte något värde under samtalet.

Passande argument

In C++, ett argument/parameter är den data som skickas till en funktion under dess anrop. Värdena måste initieras till sina respektive variabler.

Vid anrop av en funktion måste argumenten matcha i antal. Det betyder att värdena du skickar måste vara lika med antalet parametrar. Återigen måste värdena också matcha parametrarna vad gäller typ. Om den första parametern är ett heltal måste värdet som skickas till den vara ett heltal.

Man kan tilldela funktionsparametrar standardvärden. Om du inte skickar ett värde för parametern under funktionsanropet kommer standardvärdet att användas.

Exempel 3: Hur man skriver och anropar en funktion

#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;
}

Produktion:

Passande argument

Här är en skärmdump av koden:

Passande argument

Kodförklaring:

  1. Inkludera iostream-huvudfilen i vårt program för att använda dess funktioner.
  2. Inkludera std-namnområdet i vår kod för att använda dess klasser utan att anropa det.
  3. Deklarera en funktion som heter addFunc() som tar två heltalsparametrar. Detta skapar funktionsprototypen.
  4. Anropa main()-funktionen. Programlogiken bör läggas till i kroppen av denna funktion.
  5. Deklarera tre heltalsvariabler, x, y och summa.
  6. Skriv ut lite text på konsolen. Texten ber användaren att ange två siffror.
  7. Läs användarinmatningen från tangentbordet. Användaren ska ange två siffror för variablerna x och y, separerade med mellanslag.
  8. Anropa funktionen addFunc() och skicka parametrarna x och y till den. Funktionen kommer att arbeta på dessa parametrar och tilldelar utgången till variabelsumman.
  9. Skriv ut värdena för variablerna x, y och summa på konsolen tillsammans med annan text.
  10. Funktionen måste returnera värde efter framgångsrikt slutförande.
  11. Slutet på huvuddelen av funktionen main().
  12. Funktionsdefinition. Vi definierar funktionen addFunc(). Vi kommer att ange vad funktionen kommer att göra i sin kropp, { }.
  13. Deklarera en heltalsvariabel med namnet addFunc.
  14. Lägga till värdena för parametrarna num1 och num2 och tilldela resultatet till variabeln addFunc.
  15. Funktionen addFunc() bör returnera värdet för variabeln addFunc.
  16. Slutet på funktionskroppen, det vill säga funktionsdefinition.

Sammanfattning

  • En funktion i C++ hjälper dig att gruppera relaterad kod till en.
  • Funktioner underlättar kodåteranvändning.
  • Istället för att skriva liknande kod, om och om igen, grupperar du den helt enkelt i en funktion. Du kan sedan anropa funktionen var som helst inom koden.
  • Funktioner kan vara biblioteks- eller användardefinierade.
  • Biblioteksfunktioner är funktionerna inbyggda olika C++ funktioner.
  • För att använda biblioteksfunktioner inkluderar du helt enkelt dess definitionsbibliotek och anropar funktionen. Du definierar inte funktionen.
  • Användardefinierade funktioner är de funktioner du definierar som en C++ programmerare.
  • En funktionsdeklaration berättar för kompilatorn om funktionsnamn, returtyp och parametertyper.
  • En funktionsdefinition lägger till funktionens kropp.
  • Om en funktion tar parametrar ska deras värden skickas under funktionsanropet.