web-dev-qa-db-fra.com

Vous utilisez plusieurs fichiers .cpp dans un programme c ++?

Je suis récemment passé de Java pour C++ mais maintenant quand j'écris mon application, je ne suis pas intéressé à écrire tout le code dans la fonction principale, je veux que la fonction principale appelle une autre fonction mais ceci l'autre fonction se trouve dans un autre fichier .cpp.

Permettez-moi de mieux vous expliquer si vous ne comprenez pas:
J'ai un fichier: main.cpp À l'intérieur j'ai la fonction principale.

J'ai le deuxième fichier: second.cpp À l'intérieur J'ai une fonction appelée second() Je veux appeler cette fonction appelée second() depuis ma fonction principale ..

De l'aide?

48
Rakso

Vous devez utiliser un outil appelé "en-tête". Dans un en-tête, vous déclarez la fonction que vous souhaitez utiliser. Ensuite, vous l'incluez dans les deux fichiers. Un en-tête est un fichier séparé inclus à l'aide du #include directive. Ensuite, vous pouvez appeler l'autre fonction.

autre.h

void MyFunc();

main.cpp

#include "other.h"
int main() {
    MyFunc();
}

other.cpp

#include "other.h"
#include <iostream>
void MyFunc() {
    std::cout << "Ohai from another .cpp file!";
    std::cin.get();
}
70
Puppy

Vous devez avoir des fichiers d'en-tête (.h) qui contiennent la déclaration de la fonction, puis un fichier .cpp correspondant qui contient la définition. Vous incluez ensuite le fichier d'en-tête partout où vous en avez besoin. Notez que le fichier .cpp qui contient les définitions doit également inclure (c'est le fichier d'en-tête correspondant).

// main.cpp
#include "second.h"
int main () {
    secondFunction();
}

// second.h
void secondFunction();

// second.cpp
#include "second.h"
void secondFunction() {
   // do stuff
}
18
Creat

En C/C++, vous avez des fichiers d'en-tête (* .H). Là, vous déclarez vos fonctions/classes. Ainsi, par exemple, vous devrez #include "second.h" Dans votre fichier main.cpp.

Dans second.h Vous déclarez simplement comme ceci void yourFunction(); Dans second.cpp Vous l'implémentez comme

void yourFunction() { 
   doSomethng(); 
}

N'oubliez pas de #include "second.h" Également au début de second.cpp

J'espère que cela t'aides:)

6
m_pGladiator

Vous pouvez simplement placer une déclaration directe de votre fonction second() dans votre main.cpp Au-dessus de main(). Si votre second.cpp A plus d'une fonction et que vous voulez tout dans main(), mettez toutes les déclarations avant de vos fonctions dans second.cpp Dans un fichier d'en-tête et #include Dans main.cpp.

Comme ça-

Second.h:

void second();
int third();
double fourth();

main.cpp:

#include <iostream>
#include "second.h"
int main()
{
    //.....
    return 0;
}

second.cpp:

void second()
{
    //...
}

int third()
{ 
    //...
    return foo;
}

double fourth()
{ 
    //...
    return f;
}

Notez que: il n'est pas nécessaire de #include "second.h" Dans second.cpp. Tout ce dont votre compilateur a besoin, c'est de déclarations avancées et votre éditeur de liens fera le travail de recherche des définitions de ces déclarations dans les autres fichiers.

0
Michael D. Blake