2010-09-18 6 views

Répondre

7

Je suggère que la meilleure façon est de refactoriser le premier programme C++ de telle sorte que la fonction requise fasse partie d'une bibliothèque . Ensuite, vos deux programmes peuvent se lier à cette bibliothèque et la fonction est disponible pour les deux (et pour tous les autres programmes le nécessitant).

Jetez un oeil à this tutorial. Il couvre comment créer puis utiliser une bibliothèque en utilisant gcc. D'autres tutoriels similaires existent pour d'autres variantes C++.

2

#include le fichier source avec la déclaration de l'autre fonction.

3

Si vous voulez dire programmes en tant que «processus», cela dépend de l'OS que vous exécutez vos programmes. Dans la plupart des cas, vous ne pouvez pas facilement (voire pas du tout), car les processus devraient partager la mémoire. Dans les versions de débogage de certains os cela pourrait être possible. En quelques mots: si vous voulez dire que vous voulez appeler une fonction dans le code d'un programme en cours d'exécution depuis un autre programme, c'est très difficile et cela dépend très du système.

2

Déclaré ou défini? La chose importante à garder à l'esprit est qu'avant d'utiliser une fonction, le compilateur doit connaître le prototype de la fonction, donc utilisez #include pour vous assurer que le compilateur a accès au prototype. Il n'a pas nécessairement besoin du code réel pour la fonction, cela devient important au moment de la liaison.

Donc, si vous avez:

MyFunc.hpp:

int add(int a, int b); 

MyFunc.cpp:

int add(int a, int b) 
{ 
    return a + b; 
} 

Ensuite, vous pouvez l'utiliser dans un autre fichier:

Main.cpp

#include <iostream> 
#include <MyFunc.hpp> // This is the important bit. You don't need the .cpp 

int main(int argc, char* argv[]) 
{ 
    std::cout << add(20, 30) << std::endl; 
} 
Questions connexes