A paraméterek funkcionális átvitelének módszerei - stadopedia
A paramétermechanizmus az információcsere fő módja a hívott és hívó funkciók között. A függvényhívás utasításban a funkció argumentumokat írunk, és a függvény leírás fejlécében a paraméterek szerepelnek.
A C ++-ban a paraméterek háromféleképpen kerülnek átvitelre:
· Másolatonként (vagy értékenként);
Tekintsük az átutalás mindhárom módját a Change () függvényváltási példa példáján. Két paraméter kerül átadásra, és meg kell cserélni értékeiket.
1. Átvitel másolaton (érték szerint):

Ismerjük meg a program munkáját. Hatálya funkció main (), két lokális változók az A és B, amelyeket inicializált értéke 10 és 20 Abban az időben a függvényhívás Change () a verem a paraméterei X és Y, amely megkapni az értékek az A és B érvek és változó temp . Ezután ezt a változót használva az X és Y paraméterek értékei kicserélődnek (az előző értékek vörös színűek). Azonban a Change () függvény végén az X, Y és a temp változók megsemmisülnek, mivel helyi változók. és az A és B érvek értéke változatlan marad.
Így a Change () függvény nem oldja meg a hozzárendelt feladatot. Azonban ez a példa illusztrálja a használata jellemző paraméterek példányban: nincs változás a paraméter funkció nem befolyásolják a változó értéke az érveket, mert a paraméter lokális változó. Ez az alapértelmezett módszer a paraméterek C ++ -re történő átvitelére.

3. Referencia útján:
Abban az időben a Change () függvény hívást az A és B megjelennek a második argumentum az X és Y ezért változtatni funkció is működik közvetlenül az eredeti változók és B és azok változásait.
1) nincs memória az argumentumok helyi változókhoz való másolásához;
2) nincs idő felépíteni és megsemmisíteni őket.
Ha a függvénynek több eredményt kell eredményeznie, de többet is, akkor a paramétert referencia alapján adjuk meg.
TIPP Javasoljuk, hogy minden paramétert meg lehessen adni, melynek változása nem szerepel a függvényben. Ez megkönnyíti a hibakeresést. Ezenkívül a type const paraméter paraméter helyét egy konstans átvihető.
A paraméterek át a funkciót, lehet bármilyen típusú (például, anyag, szerkezet, transzfer, társulva pointer), kivéve tömb vagy funkciót keresztül továbbított mutatók.