function parameter (tsz. function parameters)
👉 A függvény paraméterei helyőrzők (változónevek), amelyeken keresztül a függvény adatokat kap a hívó kódrészlettől. 👉 A függvényhívás során az argumentumok (konkrét értékek) kerülnek a paraméterek helyére.
int x
modify(5)
#include <iostream>
using namespace std;
void greet(string name) {
cout << "Hello, " << name << "!" << endl;
}
int main() {
greet("Alice");
greet("Bob");
return 0;
}
Kimenet:
Hello, Alice! Hello, Bob!
greet
függvénynek van egy paramétere: string name
.main
-ben kétszer hívjuk meg greet
-et, különböző argumentumokkal: "Alice"
és "Bob"
.
A függvény definíciójában szerepel.
void square(int number) { // number a formális paraméter
cout << number * number << endl;
}
A függvény hívásakor átadott érték.
square(5); // 5 az aktuális paraméter (argumentum)
A függvény több paramétert is kaphat, vesszővel elválasztva:
void add(int a, int b) {
cout << "Összeg: " << (a + b) << endl;
}
int main() {
add(3, 7);
return 0;
}
Kimenet:
Összeg: 10
A paraméterek viselkedése függ a programozási nyelvtől:
&
) → call by reference (eredetit kapja meg)
void printNumber(int n) {
printf("%d\n", n);
}
def print_number(n):
print(n)
print_number(42)
function greet(name) {
console.log("Hello, " + name);
}
greet("John");
Minden hívásnál meg kell adni.
def greet(name):
print("Hello", name)
Ha nem adsz argumentumot, akkor az alapértéket használja.
def greet(name="Guest"):
print("Hello", name)
greet() # Hello Guest
greet("Alice") # Hello Alice
Pythonban *args
, C-ben ...
(variadic functions), C++11-től template parameter pack
.
def print_numbers(*args):
for n in args:
print(n)
print_numbers(1, 2, 3, 4)
Fogalom | Magyarázat |
---|---|
Formális paraméter | A függvény definíciójában szereplő változónév |
Aktuális paraméter | A függvényhívás során átadott érték |
call by value | Értéket másol a függvénybe (eredeti változatlan) |
call by reference | Eredeti adatot ad át (módosítható) |
Alapértelmezett paraméter | Paraméter, amihez nem muszáj értéket adni, mert van default értéke |
Variadic paraméter | Tetszőleges számú paramétert kezel |
void sayHello() {
cout << "Hello!" << endl;
}
void sayHelloTo(string name) {
cout << "Hello, " << name << "!" << endl;
}
void displayPerson(string name, int age) {
cout << name << " is " << age << " years old." << endl;
}