2011-08-09 15 views
34

Niedawno przeniosłem się z Java dla C++, ale teraz, kiedy piszę swoją aplikację, nie jestem zainteresowany pisaniem wszystkiego kodu w głównej funkcji, którą chcę w głównej funkcji, aby wywołać inną funkcję, ale ta druga funkcja jest w innym .cpp plik.Używanie wielu plików .cpp w programie C++?

Pozwól mi wyjaśnić lepiej, jeśli nie rozumiesz:
Mam jeden plik: main.cpp w środku Mam główną funkcję.

Mam drugi plik: second.cpp wewnątrz Mam funkcji o nazwie second() chcę wywołać tę funkcję o nazwie second() z moich głównych funkcji ..

pomocy?

+7

Ach, radości plików nagłówkowych ...... –

+6

Czy uczysz [C++ z dobrą książką wprowadzającym] (http://stackoverflow.com/q/388242/46642)? –

+1

Pliki nagłówkowe Well są odpowiedzią, więc ponieważ wiesz o nich, nie jest jasne, co robisz źle. Opublikuj swój kod i otrzymany błąd, w przeciwnym razie po prostu zgadujemy. – john

Odpowiedz

50

Musisz użyć narzędzia zwanego "nagłówkiem". W nagłówku deklarujesz funkcję, której chcesz użyć. Następnie umieść go w obu plikach. Nagłówek jest oddzielnym plikiem zawartym w dyrektywie #include. Następnie możesz zadzwonić do innej funkcji.

// other.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(); 
} 
+2

@ TheCompBoy: Czy dokładnie szukałeś odpowiedzi zanim zadasz pytanie? http://stackoverflow.com/questions/how-to-ask – Vlad

+0

Czy mogę prosić o dalsze wyjaśnienie celu pliku .h? Wydaje mi się, że nie zawiera żadnych informacji nie wymienionych w pliku other.cpp –

5

W języku C/C++ pliki nagłówkowe (* .H). Tam deklarujesz swoje funkcje/klasy. Na przykład będziesz musiał #include "second.h" do swojego pliku main.cpp.

W second.h po prostu zadeklarować jak ten void yourFunction(); W second.cpp wdrożyć go jak

void yourFunction() { 
    doSomethng(); 
} 

Nie zapomnij #include "second.h" również na początku second.cpp

Hope this helps :)

12

Powinieneś mieć pliki nagłówkowe (.h), które zawierają deklarację funkcji, a następnie odpowiedni plik .cpp, który zawiera d efinition. Następnie dołączasz plik nagłówkowy wszędzie tam, gdzie go potrzebujesz. Zauważ, że plik .cpp, który zawiera definicje, musi również zawierać (odpowiadający) plik nagłówkowy.

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

// second.h 
void secondFunction(); 

// second.cpp 
#include "second.h" 
void secondFunction() { 
    // do stuff 
} 
Powiązane problemy