#include <iostream>
using namespace std;
int foo( ) ; //deklaracja
int foo( ) ; //deklaracja może się powtarzać
int foo( ) ; //i to wiele razy
int foo( ) //definicja, (może być tylko jedna), (definicja jest jednoczenie deklaracją)
{
return 42 ;
}
int foo( ) //nie można kilka razy zdefiniować jednej funkcji
{
return 123 ;
}
int foo( ) ; //deklaracja może być po definicji
int main( ) {
cout << foo( ) << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGZvbygpOyAvL2Rla2xhcmFjamEKaW50IGZvbygpOyAvL2Rla2xhcmFjamEgbW/FvGUgc2nEmSBwb3d0YXJ6YcSHCmludCBmb28oKTsgLy9pIHRvIHdpZWxlIHJhenkKCmludCBmb28oKSAvL2RlZmluaWNqYSwgKG1vxbxlIGJ5xIcgdHlsa28gamVkbmEpLCAgKGRlZmluaWNqYSBqZXN0IGplZG5vY3plbmllIGRla2xhcmFjasSFKQp7CglyZXR1cm4gNDI7Cn0KCgppbnQgZm9vKCkgLy9uaWUgbW/FvG5hIGtpbGthIHJhenkgemRlZmluaW93YcSHIGplZG5laiBmdW5rY2ppCnsKCXJldHVybiAxMjM7Cn0KCgppbnQgZm9vKCk7IC8vZGVrbGFyYWNqYSBtb8W8ZSBiecSHIHBvIGRlZmluaWNqaQoKaW50IG1haW4oKSB7Cgljb3V0IDw8IGZvbygpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==
compilation info
prog.cpp: In function 'int foo()':
prog.cpp:14:5: error: redefinition of 'int foo()'
int foo() //nie można kilka razy zdefiniować jednej funkcji
^
prog.cpp:8:5: note: 'int foo()' previously defined here
int foo() //definicja, (może być tylko jedna), (definicja jest jednoczenie deklaracją)
^
stdout