function declaration
Főnév
function declaration (tsz. function declarations)
- (informatika) A függvénydeklaráció (function declaration) C++-ban azt jelenti, hogy előre bejelentjük a fordítónak, hogy egy adott függvény létezik, mielőtt azt ténylegesen definiálnánk. Ez segít abban, hogy a fordító tudjon a függvényről, anélkül hogy már látta volna a részletes megvalósítását.
1. Függvénydeklaráció szintaxisa
A deklaráció csak a függvény fejlécét tartalmazza, de nincs benne a függvénytörzs:
visszatérési_típus függvénynév(paraméterlista);
🔹 Példa:
#include <iostream>
// Függvénydeklaráció (csak bejelentjük a függvényt)
int osszead(int, int);
int main() {
int eredmeny = osszead(5, 7);
std::cout << "Az összeg: " << eredmeny << std::endl;
return 0;
}
// Függvénydefiníció (a tényleges megvalósítás)
int osszead(int a, int b) {
return a + b;
}
2. Miért van szükség függvénydeklarációra?
✅ Fordítási sorrend problémáinak elkerülése
- Ha egy függvényt azelőtt szeretnénk meghívni, hogy a fordító találkozna a teljes definícióval, akkor deklarációra van szükség.
✅ Modularitás és szervezettebb kód
- A függvényeket egy külön .cpp fájlban definiálhatjuk, míg a deklarációkat egy fejlécfájlban (.h) tárolhatjuk.
✅ Elősegíti a több fájlból álló programok működését
- Ha egy függvény egy másik forrásfájlban (.cpp) van definiálva, akkor a deklarációt tartalmazó fejléc (.h) fájl biztosítja, hogy más fájlokban is használhassuk a függvényt.
3. Függvénydeklaráció fejlécfájlban (.h)
A deklarációkat gyakran egy fejléces fájlba (.h) tesszük, így több .cpp fájlban is felhasználhatók.
📌 Példa fejlécfájlra (math_functions.h):
#ifndef MATH_FUNCTIONS_H
#define MATH_FUNCTIONS_H
// Függvénydeklarációk
int osszead(int, int);
int kivon(int, int);
#endif
📌 A tényleges implementáció (math_functions.cpp):
#include "math_functions.h"
// Függvények megvalósítása
int osszead(int a, int b) {
return a + b;
}
int kivon(int a, int b) {
return a - b;
}
📌 A főprogram (main.cpp):
#include <iostream>
#include "math_functions.h"
int main() {
std::cout << "Összeg: " << osszead(10, 5) << std::endl;
std::cout << "Kivonás: " << kivon(10, 5) << std::endl;
return 0;
}
🔹 Miért jó így?
- A deklarációk egy közös helyen vannak (math_functions.h), így a main.cpp csak ezt a fejlécet kell beillesztenie (#include "math_functions.h"). - A program modulárisabb, könnyebb karbantartani.
4. Alapértelmezett értékek deklarációban
A deklaráció során megadhatunk alapértelmezett értékeket a paraméterekhez. Az alapértelmezett értékek csak a deklarációban szerepelnek, a definícióban nem kell újra megadni.
📌 Példa:
#include <iostream>
// Deklaráció alapértelmezett paraméterrel
void koszont(std::string nev = "Világ");
int main() {
koszont(); // "Hello, Világ!"
koszont("Anna"); // "Hello, Anna!"
return 0;
}
// Definíció
void koszont(std::string nev) {
std::cout << "Hello, " << nev << "!" << std::endl;
}
5. inline függvények deklarációja
Ha egy függvény nagyon rövid (pl. egy-két soros), érdemes inline-ként deklarálni, hogy a fordító beépítse a kódba, és elkerüljük a függvényhívás költségét.
inline int negyzet(int x) {
return x * x;
}
int main() {
std::cout << negyzet(5); // 25
}
6. Függvénydeklaráció osztályokban (OOP)
Ha osztályokat használunk, a tagfüggvényeket az osztálydefinícióban deklaráljuk, majd külön fájlban definiáljuk.
📌 Példa (Auto.h - osztály fejlécfájl):
#ifndef AUTO_H
#define AUTO_H
class Auto {
public:
void beindit(); // Függvénydeklaráció
};
#endif
📌 A megvalósítás (Auto.cpp):
#include <iostream>
#include "Auto.h"
void Auto::beindit() {
std::cout << "Az autó beindult!" << std::endl;
}
📌 A használat (main.cpp):
#include "Auto.h"
int main() {
Auto myCar;
myCar.beindit();
return 0;
}
Összegzés
✅ A függvénydeklaráció egy előzetes bejelentés, amely elmondja a fordítónak, hogy egy függvény létezik.
✅ Segít modularitást és tisztább kódot létrehozni.
✅ Gyakran külön fejlécfájlba (.h) helyezzük, míg a függvénydefiníció egy .cpp fájlban van.
✅ Az alapértelmezett paramétereket a deklarációban adjuk meg.
✅ Osztályok esetén a függvényeket az osztályban deklaráljuk, de gyakran külön fájlban definiáljuk.
A függvénydeklaráció egy jó gyakorlat, amely segíti a nagyobb projektek szervezését és hatékonyabb fejlesztését!
- function declaration - Szótár.net (en-hu)
- function declaration - Sztaki (en-hu)
- function declaration - Merriam–Webster
- function declaration - Cambridge
- function declaration - WordNet
- function declaration - Яндекс (en-ru)
- function declaration - Google (en-hu)
- function declaration - Wikidata
- function declaration - Wikipédia (angol)