Passage d'arguments aux fonctions en C ++

Les fonctions de C qui ne font rien, mais retournent une valeur sont d'une valeur limitée parce que la communication est à sens unique - de la fonction à l'appelant. La communication bidirectionnelle nécessite les arguments de fonction

Sommaire

.

Fonction avec des arguments

Une fonction argument est une variable dont la valeur est passée à la fonction pendant l'appel. Ce qui suit FactorialFunction convertit l'opération de factorielle précédente dans une fonction:

//// FactorialFunction - réécrire le code factorielle comme // une fonction distincte .//# comprennent #comprendre #comprendre using namespace std - //// factorielle - retourner la factorielle de l'argument // fourni. Renvoie 1 pour les arguments invalides // telles que numbers.int négative factorielle (int nTarget) {// commencer avec un accumulateur qui est initialisée à 1int nAccumulator = 1-for (int nValue = 1- nValue lt; = nTarget- nValue ++) {nAccumulator * = nValue-} return nAccumulator-} int main (int nNumberofArgs, char * pszArgs []) {cout lt; lt; "Ce programme calcule factorielles" lt; lt; "D'entrée de l'utilisateur. N" lt; lt; "Entrez un nombre négatif pour quitter" lt; lt; endl - // rester dans une boucle obtenir entrée de l'utilisateur // jusqu'à ce qu'il entre dans une numberfor négatif (-) {// entrez le numéro de calculer la factorielle ofint nValue-cout lt; lt; "Entrez le numéro:" -cin >> nValue - // sortie si le nombre est negativeif (nValue lt; 0) {pause -} // afficher le resultint nFactorial = factorielle (nValue) -cout lt; lt; nValue lt; lt; "Factorielle est" lt; lt; nFactorial lt; lt; endl -} // attend que l'utilisateur est prêt avant de terminer le programme // pour permettre à l'utilisateur de voir le resultscout de programme lt; lt; "Appuyez sur Entrée pour continuer ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - retourner 0-}



La déclaration de factorielle () comprend un argument nTarget de int. Pour l'avenir, vous pouvez voir que cela est destiné à être la valeur dont la factorielle le programme calcule. La valeur de retour de la fonction est la factorielle calculée.

Dans main (), le programme invite l'utilisateur à une valeur, qui stocke en nValue. Si la valeur est négative, le programme se termine. Si non, il appelle factorielle () et transmet la valeur de nValue. Le programme enregistre la valeur retournée dans nFactorial. Il délivre alors les deux valeurs avant de retourner à inviter l'utilisateur à une nouvelle valeur.

Fonctions avec plusieurs arguments

Une fonction peut avoir plusieurs arguments en les séparant par des virgules. Ainsi, la fonction suivante renvoie le produit de deux arguments entiers:

produit int (int nValue1, int nValue2) {return nValue1 * nValue2-}

Exposer main ()

Maintenant, la vérité peut être dit: La “ mot-clé ” main () du modèle standard est rien de plus qu'une fonction - même une fonction avec des arguments étranges, mais néanmoins une fonction.

Quand un programme est construit, C ++ ajoute un peu de code réutilisable qui exécute avant que votre programme jamais gagne le contrôle. Ce code définit l'environnement dans lequel votre programme fonctionnera. Par exemple, ce code passe-partout ouvre les canaux d'entrée et de sortie par défaut et les attache à cin et cout.

Après l'environnement a été établi, le code passe-partout de la C appelle la fonction main (), commençant ainsi l'exécution de votre code. Lorsque votre programme se termine, il retourne à partir de main (). Cela permet à la passe-partout de la C pour nettoyer quelques petites choses avant de terminer le programme et la remise le contrôle au système d'exploitation.


» » » » Passage d'arguments aux fonctions en C ++