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):

A paraméterek funkcionális átvitelének módszerei - stadopedia

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.

A paraméterek funkcionális átvitelének módszerei - stadopedia

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.

Kapcsolódó cikkek