Program:
#include <iostream>
using namespace std;
int main()
{
extern int x; // declaration
int x = 42; // definition
cout<<x<<endl;
}
Kompilacja:
maciek@corei3:~/Pulpit/C++$ g++ plik.cpp
plik.cpp: In function ‘int main()’:
plik.cpp:8:6: error: redeclaration of ‘int x’
int x = 42; // definition
^
plik.cpp:7:13: note: previous declaration ‘int x’
extern int x; // declaration
Dlaczego kompilator wywala "redeklaracja int x" czyż w Symfonii C++ nie jest napisane iż zmienną można deklarować tyle razy ile się chce, a dopiero definicję można wykonać tylko raz?