Funkcje w programie składającym się z kilku plików. C/ C++

0

Witam serdecznie!

Próbuję stworzyć program podzielony na dwa pliki. Wszystkie deklaracje zebrałem w osobnym pliku nagłówkowym nagl.h(jest on włączany do obu plików). Robię wszystko na podstawie Symfonii C++ p. Grebosza, ale i tak za każdym razem wyskakuje mi błąd mówiący o tym, że funkcje nie zostały zadeklarowane. Googlowałem podobne problemy, ale niestety odpowiedzi nie pomagały. Ważna informacja, kompiluje to w devC++ 4.9.9.2.

Dokładniej podczas próby kompilacji wyskakuje coś takiego(afryka.c podobnie jest z europa.c):

Nowy folder\C iostream.h: No such file or directory.
Nowy folder\afryka.c In function main': Nowy folder\afryka.c cout' undeclared (first use in this function)
(Each undeclared identifier is reported only once for each function it appears in.)
Nowy folder\afryka.c In function funkcja_egipska': Nowy folder\afryka.c cout' undeclared (first use in this function)
Nowy folder\afryka.c In function funkcja_kenijska': Nowy folder\afryka.c cout' undeclared (first use in this function)

nagl.h


extern int ile_murzynow;
extern int ile_europejczykow;

void funkcja_egipska();
void funkcja_kenijska();
void funkcja_francuska();
void funkcja_niemiecka();

afryka.c


#include <iostream.h>
#include "nagl.h"
int ile_murzynow = 9;
main()
{
      
      cout << "Poczatek programu.\n\n";
      funkcja_francuska();
      funkcja_niemiecka();      
      cout << "\nThe end of the programm."
           << "\n\n";
      system("pause");
      
}
/************************************************/
void funkcja_egipska()
{
     cout << "Jestem w Kairze!---------\n\n";     
     cout << "Na swiecie jest: " << ile_murzynow 
          << " murzynow, oraz: " << ile_europejczykow
          << " europejczykow. \n\n";
}
/*************************************************/
void funkcja_kenijska()
{
     cout << "Jestem w Nairobi!---------\n\n";
     
     cout << "Na swiecie jest: " << ile_murzynow 
          << " murzynow, oraz: " << ile_europejczykow
          << " europejczykow. \n\n";         
    
}

 

europa.c


 #include <iostream.h>
#include "nagl.h"
int ile_europejczykow = 10;
//********************************************
void funkcja_francuska()
{
     cout << "Jestem w Paryzu!##########\n\n";
     cout << "Na swiecie jest: " << ile_murzynow 
          << " murzynow, oraz: " << ile_europejczykow
          << " europejczykow. \n\n";
          
          funkcja_egipska();
          
}
//*************************************************
void funkcja_niemiecka(void)
{
     cout << "Jestem w Berlinie!##########\n\n";
     cout << "Na swiecie jest: " << ile_murzynow 
          << " murzynow, oraz: " << ile_europejczykow
          << " europejczykow. \n\n";         
    
    funkcja_kenijska();
}
 
1

dev-c++ to nie kompilator tylko pożal się panie boże coś udającego ide - weź to usuń i się nawet do tego nie przyznawaj. no i w sumie zapewne dlatego rzuca Ci tymi błędami, bo dev widać nie radzi sobie nawet z odpaleniem kompilatora... którym jest przedpotopowa wersja mingw

Polecam Code::Blocks

Uczysz się ze starej książki, która się już do nauki nie nadaje. Od czasu jej wydania już przeszły dwie standaryzacje c++ i wielkie zmiany. Jak chcesz symfonie to tylko Symfonia Standard

main() {...} jest niepoprawne. Nie ma w c++ czegoś takiego jak domyślnie zwracany typ przez funkcję. Ma być int main() {...}
Nie #include <iostream.h> tylko #include <iostream> tamten to już przestarzały nagłówek. Dodatkowo cout jest od dawna w przestrzeni nazw std.

1

I jeszcze jedna rada ode mnie: jak piszesz w C++ to zapisuj pliki jako *.cpp a nie *.c bo inaczej moze sie okazac ze IDE bedzie probowalo uzyc kompilatora C zamiast C++

0

Nie wiem gdzie to się znajduję, ale w Devie w zakładce projekt albo coś takiego musisz dodać te nagłówki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1