return type
Megjelenés
Főnév
return type (tsz. return types)
- (informatika) A return type (visszatérési típus) C++-ban azt határozza meg, hogy egy függvény milyen típusú értéket ad vissza a hívónak. A visszatérési típus minden C++ függvény szerves része, és a fordító segítségével biztosítja a típushelyességet a függvényhívások során.
🧠 Alap szintaxis
int osszeg(int a, int b) {
return a + b; // int típusú értéket ad vissza
}
Ebben az esetben a return type: int.
📦 Alap típusok visszatérése
C++-ban a visszatérési típus lehet:
| Típus | Példa |
|---|---|
| Egyszerű típus | int, double |
| Osztály | std::string, MyClass |
| Struktúra | struct Pont |
| Pointer | int*, char* |
| Referencia | int&, const T& |
| Void | void (semmit nem ad vissza) |
🪪 void visszatérési típus
Olyan függvényeknél használatos, amelyek nem adnak vissza értéket:
void kiir(int x) {
std::cout << x;
}
🔁 Referencia és érték visszaadás
Érték szerint (by value):
int getSzam() {
int x = 5;
return x; // másolat
}
- Új példány készül.
Referencia szerint:
int& getRef(int& x) {
return x; // ugyanazt az objektumot adja vissza
}
- Hasznos, ha módosítani akarjuk a hívott objektumot.
🔐 const visszatérési típus
const std::string& getNev() const;
- Megakadályozza, hogy a hívó módosítsa a visszatérő értéket.
🧬 Függvénysablonoknál (template)
template<typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
- A
return typesablonparaméterből származik.
🧩 Trailing return type (auto -> T) – C++11+
auto osszeg(int a, int b) -> int {
return a + b;
}
Különösen hasznos sablonos vagy decltype-os helyzeteknél.
🧪 decltype return type
C++11-ben bevezetve, C++14-től auto kombinálható vele:
template<typename T1, typename T2>
auto add(T1 a, T2 b) -> decltype(a + b) {
return a + b;
}
🧰 auto return type – C++14-től
Ha auto a return type, a fordító kikövetkezteti:
auto duplaz(int x) {
return x * 2; // fordító automatikusan: int
}
🔄 Return multiple values (tuple, struct)
std::tuple<int, double> getErtekek() {
return {1, 3.14};
}
Vagy saját struktúrával:
struct Eredmeny {
int a;
double b;
};
Eredmeny getEredmeny() {
return {5, 2.71};
}
⚠️ Buktatók
| Helyzet | Figyelni kell |
|---|---|
| Referencia visszaadás | Ne térj vissza lokális változóra! |
| Auto + több return | return típusoknak egyezniük kell |
| Const correctness | const T& visszaadás megelőzi véletlen módosítást |
📘 Összegzés
| Fogalom | Leírás |
|---|---|
| Return type | Függvény visszatérési értékének típusa |
| Alap formátum | T f(...) { return ...; } |
| Speciális formák | auto, decltype, const T& |
| Void | Nem tér vissza értékkel |
| Fontos hibák | Lokális referencia, típus-inkonzisztencia |
- return type - Szótár.net (en-hu)
- return type - Sztaki (en-hu)
- return type - Merriam–Webster
- return type - Cambridge
- return type - WordNet
- return type - Яндекс (en-ru)
- return type - Google (en-hu)
- return type - Wikidata
- return type - Wikipédia (angol)