Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

Namespace c++.

Als ik in dev een c++ source file aanmaak (geen project want dan werkt het wel), en dan volgende compileer:

Code: Selecteer alles

 #include <iostream>

int main() {

char x; 

cout << "max";

cin >> x; 

return 0;

}


Krijg ik telkens een foutmelding.

Als ik nu:

Code: Selecteer alles

#include <iostream>

using namespace std; 

int main() {

char x; 

cout << "max";

cin >> x; 

return 0;

}
compileer (opnieuw in een gewoon c++ bestand) dan werkt het plots wel.

Kan mij iemand de precisie functie van die using namespace std; uitleggen? Waarom werkt het één wel en het ander niet? Groeten.
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Namespace c++.

Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: Namespace c++.

Kan het zijn dat als je die file in een project compileert, dat jouw compiler dan in een "oudere mode" ofzoiets zit? Staan er misschien nog bepaalde flags aan of uit in dat project?

Want die cin cout zooi zit tegenwoordig in een namespace std, en dus kent ie dat niet zomaar meer.

Zie ook: http://www.gotw.ca/publications/migrating_to_namespaces.htm
In theory, there's no difference between theory and practice. In practice, there is.
Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

Re: Namespace c++.

oké bedankt. Dus een soort import van een hoop zaken? Ik weet niet percies wat die compiler doet, het is dev c++ 4.9.9.2
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Namespace c++.

Het is idd gewoon een 'link' voor je compiler zodat hij weet wat hij moet doen met verschillende commando's zoals cin, cout...
Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

Re: Namespace c++.

Hoe is het dan te vergelijken met package in java?
Gebruikersavatar
qrnlk
Lorentziaan
Artikelen: 0
Berichten: 5.079
Lid geworden op: vr 14 jul 2006, 14:35

Re: Namespace c++.

Hoe is het dan te vergelijken met package in java?
Ik denk van wel, daar lijkt het tenminste op als ik het artikel lees. Maar de details zijn anders. Zie Wikipedia. (More about C++)
Any sufficiently analyzed magic is indistinguishable from science.

Any sufficiently advanced technology is indistinguishable from magic.



There is no theory of protecting content other than keeping secrets – Steve Jobs
Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

Re: Namespace c++.

Begrijp het, het is eigenlijk een linkje om te vermijden dat je telkens de volledige naam zou moeten typen. en dat binnen een soort werkruimte.
Gebruikersavatar
qrnlk
Lorentziaan
Artikelen: 0
Berichten: 5.079
Lid geworden op: vr 14 jul 2006, 14:35

Re: Namespace c++.

Het is meer een definitie van context.

Als de parser een functie/methode aanroep tegenkomt zoekt het in de context naar een passende definitie.

Door een namespace of package toe te voegen aan de context zorg je er voor dat je ze zonder de volledige naam kunt gebruiken, de parser kan ze namelijk vinden in de context.
Any sufficiently analyzed magic is indistinguishable from science.

Any sufficiently advanced technology is indistinguishable from magic.



There is no theory of protecting content other than keeping secrets – Steve Jobs
Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

Re: Namespace c++.

Oké bedankt.

Terug naar “Informatica en programmeren”