Witam. Jestem początkujący i właśnie przerabiam symfonie c++ Jerzego Grębosza. Zatrzymałem się na funkcjach, a ściślej na zadaniach z funkcji. Zgodnie z treścią zadania miałem napisać program, który składa się z dwóch plików ooraz
*każdy z plików powinien zawierać dwie funkcję
*każda funkcja powinna zostać wywołana
*w każdym pliku powinny być trzy zmienne typu int, double oraz char (łącznie 6 zmiennych)
Każda funkcja ma wypisywać te zmienne, później zmienić ich wartość i znowu wypisać na ekran, ale to akurat jest nie ważne.
Przejdźmy do istoty problemu.
Mam trzy pliki
plik1.cpp
#include <iostream>
#include "naglowek.h"
using namespace std;
int x = 1;
double y = 2.2;
char z = 'z';
void polska();
int main()
{
cout << "-----JESTESMY U SIEBIE!-----\n";
cout << "Zmienna x jest rowna: " << x << endl;
cout << "Zmienna y jest rowna: " << y << endl;
cout << "Zmienna z jest rowna: " << z;
//ZMIANA ZMIENNYCH GLOBALNYCH
x = 10;
y = 22.2;
z = 'b';
cout << "\nTeraz:\nZmienna x jest rowna: " << x << endl;
cout << "Zmienna y jest rowna: " << y << endl;
cout << "Zmienna z jest rowna: " << z;
// WYWOLANIE FUNKCJI POLSKA()
polska();
}
//**************************************
void polska()
{
cout << "\n-----JESTESMY W POLSCE!-----\n";
cout << "Zmienna x jest rowna: " << x << endl;
cout << "Zmienna y jest rowna: " << y << endl;
cout << "Zmienna z jest rowna: " << z;
//ZMIANA ZMIENNYCH GLOBALNYCH
x = 100;
y = 222.2;
z = 'a';
cout << "\nTeraz:\nZmienna x jest rowna: " << x << endl;
cout << "Zmienna y jest rowna: " << y << endl;
cout << "Zmienna z jest rowna: " << z;
// WYWOLANIE FUNKCJI niemcy()
niemcy();
}
//**************************************
plik2.cpp
#include <iostream>
#include "naglowek.h"
using namespace std;
int a = 30;
double b = 3.3;
char c = 'c';
void niemcy();
void anglia();
//*******************************************
void niemcy()
{
cout << "-----JESTESMY W NIEMCZECH!-----\n";
cout << "Zmienna a jest rowna: " << a << endl;
cout << "Zmienna b jest rowna: " << b << endl;
cout << "Zmienna c jest rowna: " << c;
//ZMIANA ZMIENNYCH GLOBALNYCH
a = 300;
b = 23.3;
c = 'd';
cout << "\nTeraz:\nZmienna a jest rowna: " << a << endl;
cout << "Zmienna b jest rowna: " << b << endl;
cout << "Zmienna c jest rowna: " << c;
// WYWOLANIE FUNKCJI anglia()
anglia();
}
//*******************************************
//*******************************************
void anglia()
{
cout << "\n-----JESTESMY W ANGLII!-----\n";
cout << "Zmienna a jest rowna: " << a << endl;
cout << "Zmienna b jest rowna: " << b << endl;
cout << "Zmienna c jest rowna: " << c;
//ZMIANA ZMIENNYCH GLOBALNYCH
a = 400;
b = 43.3;
c = 'o';
cout << "\nTeraz:\nZmienna a jest rowna: " << a << endl;
cout << "Zmienna b jest rowna: " << b << endl;
cout << "Zmienna c jest rowna: " << c;
}
//********************************************
oraz naglowek.h
#ifndef NAGLOWEK_H_INCLUDED
#define NAGLOWEK_H_INCLUDED
extern int x;
extern double y;
extern char z;
extern int a;
extern double b;
extern char c;
void polska();
void niemcy();
void anglia();
#endif // NAGLOWEK_H_INCLUDED
Gdy próbuje skompilować plik nr. 1 wyskakuje mi błąd
'undefined reference to 'niemcy()'
Męczę się i męczę i nie wiem co robię źle.. Już z jednym podobnym zadaniem dałem sobie spokój, bo błąd był podobny a ja nie umiałem znaleźć rozwiązania. Teraz jednak chce wiedzieć co jest nie tak, więc proszę o pomoc!
Z góry dziękuje :)