Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[c++] Łączenie kilku plików źródłowych w jedną całość


Rekomendowane odpowiedzi

Opublikowano

Cześć. Chciałbym się dowiedzieć w jaki sposób mogę połączyć kilka plików w jedną całość w C++. Wcześniej uczyłem się trochę php i tam było to banalne, trzeba było tylko użyć include i nazwę includowanego pliku, natomiast w przypadku C++ nic za chiny nie rozumiem.

 

Chodzi mi o coś takiego :

Mam 4 pliki cpp :

Silnik.cpp zawiera coś takiego :

#include <iostream>


#include "menu.cpp"
#include "game.cpp"
#include "ogrze.cpp"
int main();
{
int wybor;

do{
menu ();
if (wybor == 0) { game (); }
else if (wybor == 1) { ogrze (); }
} while (wybor != 2);
return 0;
}

plik menu.cpp zawiera coś takiego :

void menu ()
{
     cout << "Przykladowe menu" << endl
             << "1. Rozpocznij gre"
             << "2. O grze"
             << "3. Wyjscie";
     cin >> wybor;
}

plik game.cpp zawiera coś takiego :

void game ()
{
       // WSZYSTKIE INSTRUKCJE GRY
}

plik o grze zawiera coś takioego :

void ogrze ()
{
    cout << "Bla bla duperele info o grze";
}

 

Oczywiście dodam że ten przykład się nie kompiluje :>

 

 

I teraz jak to mogę połączyć? Czytałem trochę na internecie ale to jest masakrycznie trudne, nic nie rozumiem.

Tworzy się jakieś naglowek.h potem trzeba jeszcze naglowek.cpp...

A jak chce dwa pliki dolaczyc to musze : naglowek2.h naglowek2.cpp... Nic z tego nie rozumiem. I jeszcze jakieś instrukcje w nagłówku itepe...

 

Mógłby mi to ktoś w prosty sposób wytłumaczyć abym mógł osiągnąć taki efekt jak tu zaprezentowałem?

Weteran
Opublikowano

Nie można tego robić tak jak ty to zrobiłeś, ponieważ preprocesor wpierw wstawi zawartość danego w pliku w miejsce instrukcji #include, a dopiero potem kompilator skompiluję wszystkie pliki w projekcie. Czyli wyjdzie na to, że dana funkcja będzie zdefiniowana dwa razy.

Musisz te pliki albo wyłączyć z procesu kompilacji albo dołączyć jedynie predefinicje funkcji.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...