Meghatározatlan számú argumentum a függvényhez - verem túlcsordulás orosz nyelven

A stdargról már elmondták. Chudnenko.

De a C ++ 11 új hatékony eszköze - sablonok, változó számú argumentuma (variadic sablonok). Nem részletezem részletesen, itt olvashatsz. majd google. Ez is egy jó leírás elérhető az új kiadás Dzhosattisa A CPP Standard Library (mint hamarosan közzéteszi oroszul).

Igen, C ++ esetén változó számú argumentummal rendelkező függvény lehetséges. Ehhez tegyen ellipszist a formális paraméterek listájába.

Ahhoz, hogy a mutatót kell használni, minden egyes következő érv”távközzel„egymástól sizeof meghatározott típusú, ezért szükséges, hogy megnöveljük a mutató ezt az értéket használja, például + =. Ahhoz, hogy megtalálja a végén a paraméterek listája az ilyen módszerekkel - vagy egyik kifejezett érv: a tényleges száma „bizonytalan” érveket, vagy használja a marker értéke az utolsó érv (például 0, NULL, -1 - a legfontosabb dolog, hogy az érték nem volt „legális” logikája szerint . Részletek a függvény itt vagy itt általában, ez a téma egyszerűen a Google, így nem igazán próbál adni egy teljes infu téma, de ha ez nem egyértelmű - segítséget kérni

Elvileg igen, a C ++-ban lehetőség van előre meghatározott számú paraméterrel rendelkező funkciók létrehozására. Ehhez használja a következő szintaxist:

Amint látja, annak jelzésére, hogy a paraméterek száma ismeretlen, ellipszis van elhelyezve. Emlékeztetni kell arra, hogy egy ilyen funkció kell határozni az első paraméter (típus és név), mivel a kölcsönhatás a többi érvek alapján a jelenlegi mutató - hozzáférés az érvek közvetve - át az első mutatót. A pFirst-hez az offset hozzáadásával a következő argumentumokat érheti el a függvényhez. A példánál ez fog kinézni: pFirst [16].

Meg kell mondani, hogy ez a módszer - nem egy nagyon jó megoldás, mert ebben az esetben nem lehet probléma a típusú biztonsági - elvileg, akkor át érvek bármilyen típusú, és a fordító nem mond semmit, de tele van futásidejű hibák. Sotvetsvenno, ez a módszer alkalmasabb ugyanazon értékek átadására, de erre a célra a legtöbb esetben sokkal ésszerűbb egy tömb használata

Kapcsolódó cikkek