24. november 2002 - 11:19Der er
13 kommentarer og 1 løsning
linux og c++ ?
jeg er lige begyndt med c++. men jeg har har et problem, alle de begynder bøger der findes om c er beregnet til windows. (jeg ejer ikke en windows maskine :( )... fx dette program:
#include <iostream>
void main(void) { int ind;
cout << "intast din intægt"; cin >> ind;
if (ind<150000)
cout << "du er i skatteklasse a";
else
cout << "du er i skatteklasse b"; }
hvorfor vil det ikke compile ?? . sikkert mig der laver noget galt men hvad. burde c++ i windows og c++ i linux, ikke være det samme ?
[thomas@localhost thomas]$ gcc fil.cpp -o skat fil.cpp:4: `main' must return `int' fil.cpp: In function `int main(...)': fil.cpp:7: `cout' undeclared (first use this function) fil.cpp:7: (Each undeclared identifier is reported only once for each function it appears in.) fil.cpp:8: `cin' undeclared (first use this function)
Nu skriver du ikke, hvorfor det ikke vil kompile !
Der compiler fint med GCC 2.95.2 hos mig.
Men hvis du har GCC 3.x, så skal du bruge namespace std:
#include <iostream>
using namespace std;
void main(void) { int ind; cout << "intast din intægt: "; cin >> ind; if (ind<150000) cout << "du er i skatteklasse a"; else cout << "du er i skatteklasse b"; }
Og just for the record - uden namespace bør koden se ud som:
#include <iostream>
using namespace std;
void main(void) { int ind; cout << "intast din intægt: "; cin >> ind; if (ind<150000) cout << "du er i skatteklasse a"; else cout << "du er i skatteklasse b"; }
som er det der skal bruge stil gamle C++ compilere.
Som Erik skriver så er main faktisk en int funktion og ikke en void funktion.
using namespace std;
importerer standard name-space !
Måske kan det nemmest forklares ved følgende eksempel.
Her er koden (med int main):
#include <iostream>
using namespace std;
int main(void) { int ind; cout << "intast din intægt: "; cin >> ind; if (ind<150000) cout << "du er i skatteklasse a"; else cout << "du er i skatteklasse b"; return 0; }
den kunne alternativt også skrives som:
#include <iostream>
int main(void) { int ind; std::cout << "intast din intægt: "; std::cin >> ind; if (ind<150000) std::cout << "du er i skatteklasse a"; else std::cout << "du er i skatteklasse b"; return 0; }
Hvis du kender Java, så er using namespace ekvivalent med import i java.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.