2010-05-30 8 views
0

Je suis tombé sur un programme avec 10 en-tête et 10 fichiers source. J'ai lu dans mon livre de texte que les fonctions sont appelées depuis le principal. Mais comment puis-je transmettre des données à tant de fonctions de main()?Fonctions d'appel de main() en C++

+0

Cela dépend entièrement du type de données et du but pour lequel les fonctions en ont besoin. Peut-être que vous pouvez donner un exemple, même en pseudocode. –

+4

De la même manière que vous transmettez des données à n'importe quelle fonction. – Joel

+3

Je vous recommande de continuer à lire votre manuel ... Je suis sûr que tout deviendra clair alors. –

Répondre

14

Les fonctions n'ont pas nécessairement besoin d'être appelées depuis le principal. Ils peuvent être appelés par d'autres fonctions. Par exemple:

int foo(int x) 
{ 
    return x*x; 
} 

int bar(int x) 
{ 
    return foo(x) + 1; 
} 

int main() 
{ 
    int a = bar(42); 
    std::cout << a << std::endl; 
    return 0; 
} 

Notez que foo() est jamais appelé directement à partir main().

+0

Merci. Mais mon programme a 100 classes et plus de 1000 fonctions réparties sur de nombreux fichiers. Comment les appeler de main()? Quelle est la procédure adoptée? – Supriyo

+0

Beaucoup de ces classes et fonctions dépendront d'autres classes et fonctions, et ainsi de suite. Je soupçonne que vous avez seulement besoin d'appeler quelques-uns de haut niveau de la main, et il va couler à partir de là. Vous devrez étudier le code pour déterminer quels sont vos «points d'entrée». –

+0

Une bonne façon de naviguer rapidement dans le code consiste à exécuter le code via un programme de documentation appelé Doxygen. Il produira des fichiers de documentation HTML avec beaucoup de liens hypertexte, ainsi que des graphiques de dépendance d'en-tête/classe. Assurez-vous que vous activez l'option SOURCE_BROWSER, afin qu'elle produise des versions HTML du code source avec des liens hypertexte vers toutes les classes, structures, fonctions, etc. –

2

À mon avis, cette phrase n'est pas correct, mais je suppose que ce qui était censé dire pourrait être reformulée comme « Chaque méthode de fonction ou de la classe que vous mettre en œuvre et de l'utilisation serait en quelque sorte appelé à partir de votre routine main() "

et en quelque sorte dans ce contexte serait en fait dire directement ou indirectement - par d'autres fonctions/wrappers de fonction.

Quoi qu'il en soit, l'idée doit être claire - toute action significative qui se fait dans votre application est réellement fait en utilisant un certain appel de fonction de votre routine main(), qui est parfois aussi appelé l'application racine (essayer de penser votre application sous la forme d'un arbre d'appels de fonction, puis votre fonction main() serait en haut de votre arbre).