C++ Funktioner med programexempel
โก Smart sammanfattning
Fungerar i C++ grupperar relaterade satser i รฅteranvรคndbara namngivna block som tar emot indata, bearbetar den och returnerar utdata. Program kombinerar inbyggda biblioteksfunktioner och anvรคndardefinierade funktioner, dรคr var och en deklareras, definieras och anropas fรถr att undvika att koden upprepas.

Vad รคr en funktion i C++?
En funktion i 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:
Hรคr รคr en skรคrmdump av koden:
Code Fรถrklaring:
- Inkludera iostream-huvudfilen i vรฅrt program fรถr att anvรคnda dess funktioner.
- Inkludera cmath-biblioteket fรถr att anvรคnda dess funktioner. Vi vill anvรคnda funktionen sqrt() definierad i den.
- Inkludera std-namnomrรฅdet i vรฅr kod fรถr att anvรคnda dess klasser utan att anropa det.
- Anropa main()-funktionen. Programlogiken bรถr lรคggas till i kroppen av denna funktion.
- Deklarera tvรฅ dubbla variabler, num och kvadratrot.
- Skriv ut lite text pรฅ konsolen. Texten ber anvรคndaren att ange ett nummer.
- Lรคs anvรคndarinmatning frรฅn tangentbordet. Ingรฅngen blir vรคrdet fรถr variabel num.
- 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.
- Skriv ut numret som angetts av anvรคndaren, dess kvadratrot och lite annan text pรฅ konsolen.
- Programmet mรฅste returnera vรคrde efter framgรฅngsrikt slutfรถrande.
- 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:
Hรคr รคr en skรคrmdump av koden:
Code Fรถrklaring:
- Inkludera iostream-huvudfilen i vรฅrt program fรถr att anvรคnda dess funktioner.
- Inkludera std-namnomrรฅdet i vรฅr kod fรถr att anvรคnda dess klasser utan att anropa det.
- Skapa en anvรคndardefinierad funktion som heter sayHello().
- Skriv ut lite text pรฅ konsolen nรคr funktionen sayHello() anropas.
- Slutet pรฅ brรถdtexten fรถr sayHello()-funktionen.
- Anropa main()-funktionen. Programlogiken bรถr lรคggas till i kroppen av denna funktion.
- Anropa/anropa funktionen som heter sayHello().
- Programmet mรฅste returnera vรคrde efter framgรฅngsrikt slutfรถrande.
- Slutet pรฅ huvuddelen av funktionen main().
Kompilatorn mรฅste kรคnna till en funktion innan den anvรคnds.
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.
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.
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 fรถr 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 saknar 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.
En funktion anropas med sitt namn. Om funktionen tar emot parametrar ska deras vรคrden skickas under anropet. Om funktionen inte tar emot nรฅgra parametrar ska inget vรคrde skickas under anropet.
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.
Nรคr man anropar en funktion mรฅste argumenten matcha i antal. Det betyder att de vรคrden 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 standardvรคrden till funktionsparametrar. Om du inte anger 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:
Hรคr รคr en skรคrmdump av koden:
Code Fรถrklaring:
- Inkludera iostream-huvudfilen i vรฅrt program fรถr att anvรคnda dess funktioner.
- Inkludera std-namnomrรฅdet i vรฅr kod fรถr att anvรคnda dess klasser utan att anropa det.
- Deklarera en funktion som heter addFunc() som tar tvรฅ heltalsparametrar. Detta skapar funktionsprototypen.
- Anropa main()-funktionen. Programlogiken bรถr lรคggas till i kroppen av denna funktion.
- Deklarera tre heltalsvariabler, x, y och summa.
- Skriv ut lite text pรฅ konsolen. Texten ber anvรคndaren att ange tvรฅ siffror.
- Lรคs anvรคndarinmatningen frรฅn tangentbordet. Anvรคndaren ska ange tvรฅ siffror fรถr variablerna x och y, separerade med mellanslag.
- Anropa funktionen addFunc() och skicka parametrarna x och y till den. Funktionen kommer att arbeta pรฅ dessa parametrar och tilldelar utgรฅngen till variabelsumman.
- Skriv ut vรคrdena fรถr variablerna x, y och summa pรฅ konsolen tillsammans med annan text.
- Funktionen mรฅste returnera vรคrde efter framgรฅngsrikt slutfรถrande.
- Slutet pรฅ huvuddelen av funktionen main().
- Funktionsdefinition. Vi definierar funktionen addFunc(). Vi kommer att ange vad funktionen kommer att gรถra i sin kropp, { }.
- Deklarera en heltalsvariabel med namnet addFunc.
- Lรคgga till vรคrdena fรถr parametrarna num1 och num2 och tilldela resultatet till variabeln addFunc.
- Funktionen addFunc() bรถr returnera vรคrdet fรถr variabeln addFunc.
- Slutet pรฅ funktionskroppen, det vill sรคga funktionsdefinition.






