C++ Funktsioonid programminäidetega

⚡ Nutikas kokkuvõte

Funktsioonid sees C++ grupeerige seotud laused korduvkasutatavateks nimega plokkideks, mis võtavad sisendi vastu, töötlevad seda ja tagastavad väljundi. Programmid kombineerivad sisseehitatud teegifunktsioone ja kasutaja määratletud funktsioone, millest igaüks deklareeritakse, defineeritakse ja kutsutakse välja, et vältida koodi kordamist.

  • 🧩 Mis see on: Funktsioon rühmitab lauseid, mis võtavad parameetreid, töötlevad neid ja tagastavad väärtuse, käivitades ühest plokist ühise ülesande.
  • 📚 Sisseehitatud funktsioonid: . C++ Standardteek sisaldab valmisfunktsioone, näiteks sqrt(), mida saab otse välja kutsuda ilma neid kirjutamata.
  • 🛠️ Kasutaja määratletud funktsioonid: Programmeerijad loovad oma funktsioonid, nimetavad need unikaalselt ja kutsuvad selle koodi välja ükskõik kust programmist.
  • 📝 Deklaratsioon ja määratlus: Prototüüp deklareerib tagastustüübi, nime ja argumendi tüübid; definitsioon annab funktsiooni sisu.
  • 📞 Üleskutse ja argumendid: Funktsiooni kutsumine käivitab selle sisu; argumendid peavad vastama parameetritele arvu ja tüübi poolest ning lubatud on ka vaikeväärtused.
  • 🤖 AI abi: GitHub Copilot ja sarnased assistendid toestavad C++ Funktsioonide signatuurid, sisud ja kõned lühikesest kommentaarist.

C++ Funktsioonid

Mis on funktsioon C++?

Funktsioon sees C++ viitab lausete rühmale, mis võtab sisendi, töötleb seda ja tagastab väljundi. Funktsiooni mõte on kombineerida ühiseid ülesandeid, mida tehakse korduvalt. Kui teil on erinevad sisendid, ei kirjuta te sama koodi uuesti. Funktsiooni kutsutakse lihtsalt erineva andmekogumiga, mida nimetatakse parameetriteks.

Tk C++ programmil on vähemalt üks funktsioon, funktsioon main(). Saate oma koodi jagada erinevateks funktsioonideks. See jaotus peaks olema selline, et iga funktsioon täidaks konkreetset ülesannet.

Seadmel on palju sisseehitatud funktsioone C++ standardne raamatukogu. Saate neid funktsioone oma programmis kutsuda.

Miks kasutada funktsioone?

Funktsioonide kasutamisega on seotud palju eeliseid. Nende hulka kuuluvad:

  • Iga funktsioon paneb seotud koodi kokku. See muudab programmeerijate jaoks koodi mõistmise lihtsamaks.
  • Funktsioonid muudavad programmeerimise lihtsamaks, välistades koodi kordamise.
  • Funktsioonid hõlbustavad koodi taaskasutamist. Saate kutsuda sama funktsiooni ülesande täitmiseks programmi erinevates osades või isegi väljaspool programmi.

Sisseehitatud funktsioonid

In C++, teegi funktsioonid on sisseehitatud C++ funktsioonid. Nende funktsioonide kasutamiseks peate lihtsalt neid otse välja kutsuma/helistama. Funktsioone ei pea ise kirjutama.

Näide 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;
}

Väljund:

Väljund C++ Sisseehitatud sqrt() funktsiooni näide

Siin on koodi ekraanipilt:

C++ kood, mis kutsub cmathi sisseehitatud sqrt() funktsiooni

Code Selgitus:

  1. Selle funktsioonide kasutamiseks lisage meie programmi iostreami päisefail.
  2. Lisage selle funktsioonide kasutamiseks cmath teek. Soovime kasutada selles defineeritud funktsiooni sqrt().
  3. Lisage meie koodi std nimeruum, et kasutada selle klasse ilma seda kutsumata.
  4. Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle funktsiooni kehasse.
  5. Deklareerige kaks topeltmuutujat, num ja ruutjuur.
  6. Printige konsoolile teksti. Tekst palub kasutajal sisestada number.
  7. Lugege klaviatuurilt kasutaja sisendit. Sisend muutub muutuja num väärtuseks.
  8. Kutsuge välja teegi funktsioon sqrt(), mis arvutab arvu ruutjuure. Andsime funktsioonile edasi parameetri num, mis tähendab, et see arvutab ruutjuure numbrist. See funktsioon on määratletud teegis cmath.
  9. Printige kasutaja sisestatud number, selle ruutjuur ja mõni muu konsoolil olev tekst.
  10. Programm peab pärast edukat lõpetamist tagastama väärtuse.
  11. Funktsiooni main() keha lõpp.

Kasutaja määratud funktsioonid

C++ võimaldab programmeerijatel ise oma funktsioone määratleda. Funktsiooni eesmärk on seotud koodi rühmitamine. Seejärel antakse koodile kordumatu tunnus, funktsiooni nimi.

Funktsiooni saab kutsuda/välja kutsuda mis tahes muust programmi osast. Seejärel käivitab see oma kehas määratletud koodi.

Näide 2:

#include <iostream>
using namespace std;

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

int main() {

	sayHello();

	return 0;
}

Väljund:

Väljund C++ kasutaja määratletud sayHello() funktsioon

Siin on koodi ekraanipilt:

C++ kasutaja defineeritud funktsiooni defineerimine ja kutsumine koodi abil

Code Selgitus:

  1. Selle funktsioonide kasutamiseks lisage meie programmi iostreami päisefail.
  2. Lisage meie koodi std nimeruum, et kasutada selle klasse ilma seda kutsumata.
  3. Looge kasutaja määratud funktsioon nimega sayHello().
  4. Funktsiooni sayHello() kutsumisel printige konsoolile teksti.
  5. Funktsiooni sayHello() keha lõpp.
  6. Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle funktsiooni kehasse.
  7. Kutsuge / käivitage funktsioon nimega sayHello().
  8. Programm peab pärast edukat lõpetamist tagastama väärtuse.
  9. Funktsiooni main() keha lõpp.

Kompilaator peab enne funktsiooni kasutamist seda teadma.

Funktsiooni deklaratsioon/prototüüp

Kui määrate pärast funktsiooni main() kasutaja määratud funktsiooni, siis C++ kompilaator tagastab veateate. Põhjus on selles, et kompilaator ei tea kasutaja määratud funktsiooni üksikasju. Üksikasjad hõlmavad selle nime, argumentide tüüpe ja nende tagastustüüpe.

In C++, funktsiooni deklaratsioon/prototüüp deklareerib funktsiooni ilma kehata. See annab kompilaatorile kasutaja määratud funktsiooni üksikasjad.

Deklaratsioonis/prototüübis lisame tagastustüübi, funktsiooni nime ja argumenditüübid. Argumentide nimesid ei lisata. Argumentide nimede lisamine aga viga ei tekita.

C++ funktsiooni deklaratsiooni/prototüübi süntaksi diagramm

Funktsiooni definitsioon

Funktsiooni deklaratsiooni eesmärk on öelda C++ kompilaator funktsiooni nime, tagastustüübi ja parameetrite kohta. Funktsiooni definitsioon ütleb C++ funktsiooni keha kohta koostaja.

C++ funktsiooni definitsiooni struktuuri diagramm

Süntaks

return_datatype function_name( parameters) {
   function body 
}

Eeltoodust lähtuvalt on funktsiooni definitsioonil funktsiooni päis ja keha. Siin on parameetrite selgitus:

  • return_datatype – Mõned funktsioonid tagastavad väärtuse. See parameeter tähistab tagastatava väärtuse andmetüüpi. Mõned funktsioonid ei tagasta väärtust. Sellisel juhul muutub selle parameetri väärtus tühiseks.
  • funktsiooni_nimi – see on funktsiooni nimi. Funktsiooni nimi ja parameetrid moodustavad funktsiooni allkirja.
  • Parameetrid – see on funktsiooni parameetrite tüüp, järjekord ja arv. Mõnel funktsioonil pole parameetreid.
  • funktsiooni keha – need on avaldused, mis määratlevad, mida funktsioon teeb.

Funktsiooni helistamine

Et funktsioon täidaks määratud ülesannet ja tagastaks väljundi, tuleb see välja kutsuda. Funktsiooni kutsumisel täidab see selle kehasse lisatud lauseid.

Funktsiooni kutsutakse välja selle nime järgi. Kui funktsioon võtab parameetreid, tuleks nende väärtused kutse ajal edastada. Kui funktsioon ei võta parameetreid vastu, siis ärge kutse ajal ühtegi väärtust edastage.

C++ funktsioonikõne süntaksi diagramm

Argumentide läbimine

In C++, argument/parameeter on andmed, mis edastatakse funktsioonile selle kutsumise ajal. Väärtused tuleb lähtestada nende vastavate muutujatega.

Funktsiooni kutsumisel peavad argumentide arvud ühtima. See tähendab, et edastatud väärtuste arv peab olema võrdne parameetrite arvuga. Jällegi peavad väärtused parameetritele vastama ka tüübi poolest. Kui esimene parameeter on täisarv, peab ka sellele edastatud väärtus olema täisarv.

Funktsiooniparameetritele saab määrata vaikeväärtused. Kui funktsiooni kutsumisel parameetrile väärtust ei edastata, kasutatakse vaikeväärtust.

Näide 3: Kuidas kirjutada ja kutsuda funktsiooni

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

Väljund:

Väljund C++ addFunc() funktsioon tagastab summa

Siin on koodi ekraanipilt:

C++ kood, mis edastab argumente funktsioonile addFunc()

Code Selgitus:

  1. Selle funktsioonide kasutamiseks lisage meie programmi iostreami päisefail.
  2. Lisage meie koodi std nimeruum, et kasutada selle klasse ilma seda kutsumata.
  3. Deklareerige funktsioon nimega addFunc(), mis võtab kaks täisarvu parameetrit. See loob funktsiooni prototüübi.
  4. Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle funktsiooni kehasse.
  5. Deklareerige kolm täisarvu muutujat x, y ja summa.
  6. Printige konsoolile teksti. Tekst palub kasutajal sisestada kaks numbrit.
  7. Lugege klaviatuurilt kasutaja sisendit. Kasutaja peaks sisestama kaks numbrit muutujate x ja y jaoks, eraldades need tühikuga.
  8. Kutsuge funktsioon addFunc() ja edastage sellele parameetrid x ja y. Funktsioon töötab nende parameetrite alusel ja määrab väljundi muutuvale summale.
  9. Printige konsoolile koos muu tekstiga muutujate x, y ja summa väärtused.
  10. Funktsioon peab pärast edukat lõpetamist tagastama väärtuse.
  11. Funktsiooni main() keha lõpp.
  12. Funktsiooni määratlus. Defineerime funktsiooni addFunc(). Me ütleme, mida funktsioon oma kehas teeb, { }.
  13. Täisarvulise muutuja nimega addFunc deklareerimine.
  14. Parameetrite num1 ja num2 väärtuste liitmine ja tulemuse määramine muutujale addFunc.
  15. Funktsioon addFunc() peaks tagastama muutuja addFunc väärtuse.
  16. Funktsiooni keha lõpp, see tähendab funktsiooni määratlus.

KKK

Väärtuse järgi kutsumine kopeerib argumendi, seega funktsiooni sees tehtud muudatused algset väärtust ei mõjuta. Viite järgi kutsumine edastab muutuja koos ampersandiga, lastes funktsioonil otse kutsuja väärtust muuta. C++ Vaikimisi kutsub väärtuse järgi.

Funktsioonide ülekoormamine võimaldab mitmel funktsioonil jagada ühte nime, kuid erineda parameetrite arvu või tüübi poolest. Kompilaator valib edastatud argumentide hulgast õige versiooni, parandades seotud toimingute loetavust.

Tekstisisene funktsioon palub kompilaatoril lisada igale kutsekohale oma keha tavalise kutse asemel. See võib väikeste funktsioonide puhul üldkulu vähendada, kuigi kompilaator võib vihjet ignoreerida.

Rekursiivne funktsioon kutsub välja iseennast, jagades probleemi väiksemateks alamprobleemideks. See vajab baasjuhtu, mis peatab rekursiooni; vastasel juhul korduvad väljakutsed igavesti ja ajavad pinu üle. Faktoriaal on klassikaline näide.

Parameeter edastatakse pointerina või suurusega massiivina ja tavaliselt saadetakse selle pikkus eraldi, kuna massiiv kahaneb pointeriks. Vaata edastamine massiivid C++ funktsioonid täielike töötatud näidete jaoks.

Funktsioon tagastab otse ühe väärtuse, aga väljundviiteparameetrite, struktuuri, std::paari, std::tuple'i või std::vectori abil saab tagastada mitu väärtust. Seejärel pakivad struktureeritud seosed tagastatud tuple'i väljakutse saidil lahti.

Jah. Tehisintellekti abilised kodeerimiseks muudavad lihtsas keeles kommentaari terviklikuks tekstiks. C++ funktsioon, mis soovitab signatuuri, sisu ja tagastustüüpi. Samuti refaktoreerivad nad pikki funktsioone, kuigi peaksite genereeritud loogikat üle vaatama.

GitHubi koopia automaatne täitmine C++ funktsioonide definitsioonid, prototüübid ja teie kommentaaridest või nimedest lähtuvad väljakutsed, pakub välja ülekoormusi ja koostab ühiktestide mustandeid. See kasutab konteksti loomiseks viidatud päiseid, kuid iga ettepanek vajab siiski ülevaatamist.

Võta see postitus kokku järgmiselt: