Mam dwa pliki .cpp z pewnej książki, które powinny razem działać.
Plik main.cpp:
// external.cpp -- zmienne zewnetrzne
// kompilowac lacznie z support.cpp
#include <iostream>
using namespace std;
// zmienna zewnerzna:
double warming = 0.3; // definicja zmiennej warming
// prototypy funkcji:
void update(double dt);
void local();
int main() // korzysta ze zmiennej globalnej
{
cout << "Globalne ocieplenie wynosi " << warming << " stopni.\n";
update(0.1); // wywolanie funkcji modyfikujacej zmienna globalna
cout << "Globalne ocieplenie wynosi " << warming << " stopni.\n";
local(); // wywolanie funkcji korzystajacej ze zmiennej lokalnej
cout << "Globalne ocieplenie wynosi " << warming << " stopni.\n";
return 0;
}
Oraz drugi plik file2.cpp (nazwa nie ma znaczenia?):
// support.cpp -- stosowanie zmiennych zewnetrznych
// kompilowac razem z external.cpp
#include <iostream>
extern double warming; // deklaracja referencyjna zmiennej warming z innego pliku
// zmienna zewnetrzna:
double warming = 0.3; // deklaracja zmiennej warming
// prototypy funkcji
void update(double dt);
void local();
using std::cout;
void update(double dt) // modyfikuje zmienna globalna
{
extern double warming; // opcojonalne powtorzenie deklaracji
warming += dt; // odwolanie do globalnej zmiennej warming
cout << "Zwiekszam parametr ocieplenia do " << warming;
cout << " stopni.\n";
}
void local() // korzysta ze zmiennej lokalnej
{
double warming = 0.8; // nowa zmienna przeslania zmienna zewnetrzna
cout << "Lokalne ocieplenie wynosi " << warming << " stopni.\n";
// odwolanie do zmiennej globalnej za pomoca operatora zasiegu
cout << "Ale globalne ma wartosc " << ::warming;
cout << " stopni.\n";
}
Wyskakuje błąd: "error: ld returned 1 exit status|".
Używam Code::Blocks 16.01