Springen naar inhoud

Namespace c++.


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 11 september 2007 - 14:03

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

#include <iostream>


int main() {
	
	char x; 
	
	cout << "max";
	cin >> x; 
	return 0;
}


Krijg ik telkens een foutmelding.

Als ik nu:
#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.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 11 september 2007 - 15:03

http://www.stevehell...t/basics10.html

#3

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 11 september 2007 - 15:03

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/p..._namespaces.htm
In theory, there's no difference between theory and practice. In practice, there is.

#4

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 11 september 2007 - 15:19

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

#5

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 11 september 2007 - 15:47

Het is idd gewoon een 'link' voor je compiler zodat hij weet wat hij moet doen met verschillende commando's zoals cin, cout...

#6

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 11 september 2007 - 18:48

Hoe is het dan te vergelijken met package in java?

#7

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 11 september 2007 - 20:01

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

#8

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 12 september 2007 - 17:48

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.

#9

qrnlk

    qrnlk


  • >5k berichten
  • 5079 berichten
  • Lorentziaan

Geplaatst op 12 september 2007 - 17:56

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

#10

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 12 september 2007 - 20:48

Oké bedankt.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures