Dead_Rabbit Skrevet 2. februar 2004 Del Skrevet 2. februar 2004 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. Lenke til kommentar
moesen Skrevet 2. februar 2004 Del Skrevet 2. februar 2004 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. 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
A_N_K Skrevet 2. februar 2004 Del Skrevet 2. februar 2004 (endret) 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 2. februar 2004 av A_N_K Lenke til kommentar
Dead_Rabbit Skrevet 3. februar 2004 Forfatter Del Skrevet 3. februar 2004 Takker for alle svar!!! Lenke til kommentar
Dead_Rabbit Skrevet 3. februar 2004 Forfatter Del Skrevet 3. februar 2004 Er det noen som har noen tips om hvilken bok jeg kan kjøpe meg?? Skal nok lese litt i den C++ og objektorientert programmering 2. utgave førts for det er den jeg har, men sånn etter den? Uten at jeg trenger å lære meg masse annet i tilleg? Litt klumsete forklart men... Lenke til kommentar
A_N_K Skrevet 3. februar 2004 Del Skrevet 3. februar 2004 Jeg tror at en relativt moderne C++-bok ville gjort seg, som Accelerated C++ (passer for nybegynnere), eller Thinking in C++ (fritt tilgjengelig på internett). Lenke til kommentar
☀ ❄ Skrevet 3. februar 2004 Del Skrevet 3. februar 2004 (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 blaEller 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
Dead_Rabbit Skrevet 3. februar 2004 Forfatter Del Skrevet 3. februar 2004 (endret) Takker for tips og alt det der... (jeg er 12 år, så jeg kan ikke så mye egnelsk, men det skal nok gå bra) EDIT:Leif Endret 5. april 2004 av zirener Lenke til kommentar
Jesper Karsrud Skrevet 3. februar 2004 Del Skrevet 3. februar 2004 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! Lenke til kommentar
moesen Skrevet 3. februar 2004 Del Skrevet 3. februar 2004 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
Dead_Rabbit Skrevet 4. februar 2004 Forfatter Del Skrevet 4. februar 2004 Nok en gang... Takk for alle tips Lenke til kommentar
☀ ❄ Skrevet 6. februar 2004 Del Skrevet 6. februar 2004 (endret) 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 6. februar 2004 av Myubi Lenke til kommentar
Dead_Rabbit Skrevet 17. februar 2004 Forfatter Del Skrevet 17. februar 2004 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå