Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse
Er det noen som kan svare meg på hva namespace er??

Jeg driver boken C++ og objektorientert programmering 2.utgave, og der nevner de ikke (har de ihverfall ikke enda) nevnt namespace. ;):dontgetit:

Namespace er litt dårlig forklart "std::" hvis du skjønner...

namespace er ett bibliotek som er standaren i C++. Slike vanlige ting som "std, cout" og stuff er namespace...

 

namespace er ikke noe spessielt å lære egentlig, det er bare at du må enten bruke std::cout bla bla bla

Eller skrive "using namespace std;" i starten, da kan du skrive bare cout bla bla bla for da inkluderer du det biblioteket fra starten..

Lenke til kommentar

Tror det kunne være en idé med en nyere bok. Namespace er en mekanisme for å unngå kræsj i det globale navnerommet. Det kan sammenlignes med telefonnummer hvor man har prefiks for ulike land, men innenriks er prefiks unødvendig. C++'s standardbibliotek bruker namespacet std (for 'standard'); dermed kan du for eksempel ha et objekt du kaller 'cout' uten at det kræsjer med std::cout. Hvis du vil slippe å skrive std::cout hele tiden, kan du si fra om dette ved å skrive using std::cout. Men da risikerer du et kræsj med en mulig annen identifikator som heter cout. Et namespace deklarer du ved å skrive:

namespace MittNavnerom {
}

En tilsvarende praksis i C er å prefikse navn i biblioteker med en forkortelse av navnet på biblioteket (f.eks gl for OpenGL), men dette prefikset er fast (du kan ikke kvitte deg med det ved å skrive using).

 

Som et eksempel kan det nevnes at den kjente samlingen av C++-biblioteker boost bruker navnerommet boost (dvs. boost:: ), med nøstede navnerom for de enkelte bibliotekene. F.eks boost::python. For å forenkle kan man skrive

namespace py = boost::python;

Eller

using namespace boost::python; // Slipper å prefikse med boost::python, risikerer navnekræsj

Endret av A_N_K
Lenke til kommentar

(A_N_K har forklart namespaces veldig godt. Jeg følte bare at moesen sitt innlegg trengte å bli oppklart litt.)

 

Namespace er litt dårlig forklart "std::" hvis du skjønner...

std er et namespace, men et namespace er ikke nødvendigvis std.

(Parallell: Audi er en bil, men en bil er ikke nødvendigvis en Audi.)

 

namespace er ett bibliotek som er standaren i C++.

Standard C++ Library er i namespace std. namespace er et nøkkelord og en feature i C++.

 

Slike vanlige ting som "std, cout" og stuff er namespace...

std er et namespace. cout er et navn (identifier) på et objekt, men ikke et namespace.

 

namespace er ikke noe spessielt å lære egentlig,

Delvis enig. Som begynner er "using namespace std;" nok å kunne om namespaces. Senere bør du kunne hvordan du oppretter et, hvordan du bruker et og hvordan du kan aliase, slik som A_N_K forklarte. Men det er ikke så veldig vanskelig, så man bruker ikke så veldig lang tid på å lære det.

 

det er bare at du må enten bruke std::cout bla bla bla

Eller skrive "using namespace std;" i starten, da kan du skrive bare cout bla bla bla for da inkluderer du det biblioteket fra starten..

Rettelse: Da bruker du det namespacet fra starten.

 

Bruke namespace: using namespace ...;

Inkludere bibliotek: #include <...>

Lenke til kommentar
Engelsken som står i sånne bøker kan kanskje være litt vanskelig, men det går nok bra hvis du har f.eks. en teknisk/vanlig ordbok ved siden av!

Accelerated C++ eller sikkert generelt alle slike bøker kommer med en god porsjon tung engelsk med masse tørt stoff. Du kan starte med å lese/skumlese alt det daysleper har skrevet. Eller finne noe bare så du får startet med litt norsk standard ;)

Lenke til kommentar

Teach yourself C++ in 21 days har et ganske lett språk, og er en grei bok for nybegynnere. Bare ikke lur deg selv til å tro at du kommer igjennom den på 21 dager.

 

EDIT: Teach yourself C++ in 21 days tar ikke for seg namespaces, tror jeg. Den bruker ihvertfall gamle headere.

 

Effective C++ er også en ganske lett, og veldig lærerik, bok.

Endret av Myubi
Lenke til kommentar
  • 2 uker senere...
Teach yourself C++ in 21 days har et ganske lett språk, og er en grei bok for nybegynnere. Bare ikke lur deg selv til å tro at du kommer igjennom den på 21 dager.

 

EDIT: Teach yourself C++ in 21 days tar ikke for seg namespaces, tror jeg. Den bruker ihvertfall gamle headere.

 

Effective C++ er også en ganske lett, og veldig lærerik, bok.

Takker for svar

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...