daysleper Skrevet 6. desember 2003 Del Skrevet 6. desember 2003 Umulige tekststrenger "Umulige tekststrenger" er noe man ofte kommer borti i C++ når man har funnet seg et nytt API man vil bruke, og vi skal her vise deg hvordan man konverterer mellom de ulike strengtypene i C++. Les artikkelen her Lenke til kommentar
daysleper Skrevet 6. desember 2003 Forfatter Del Skrevet 6. desember 2003 Angående stilen jeg bruker i koden: const char* er det samme som char const* ..har jeg fått et par spørsmål om hvorfor jeg har gått for denne løsningen. Jeg svarte noe slikt: Jeg skulle kanskje utelukkende sagt at "dette gjelder C++" fremfor "C/C++". char* foo; // *Er* den vanlige måten å uttrykke dette på i C++ i motsetning til C der.. chac *foo; // ..dette er vanlig. Så i C++ har man gjerne kun én "peker til" -variabel pr. linje for å unngå forvirringer og ting som ikke ser bra ut. char const* foo; // er noe utradisjonellt i både C og C++. Dette er jeg klar over, men jeg leste noe om dette ("C++ Templates: The Complete Guide" - D. Vandevoorde, Nicolai M. Josuttis) som gjør at jeg fikk lyst til å "venne" meg til denne måten å skrive det på. Det gikk noe slikt som dette her: Vi er begge enige om at uttrykkene: const int i = 1; ..og.. int const i = 1; er like, så jeg kunne godt gått for den som er mer vanlig. Men: int* const i = 1; ..er unik, og betyr at det er *pekeren*, ikke int'en, som er en konstant. Hadde vi snudd på dette; const int* i = 1; ..ville uttrykket fått en helt annen betydning; det er int'en som er en konstant, ikke pekeren. Så hvis vi holder oss til å holde const til høyere for det som skal være konstant; stemmer det hele tiden. Pekere eller ikke: int const i = 1; // [konstant int] int* const i = 1; // [konstant peker] til int int const* i = 1; // peker til [konstant int] En annen grunn er typedef's: typdef int* MinInt; typedef MinInt const cpMinInt; // konstant *peker* til int int'en er altså ikke konstant her, noe som stemmer bra. Hadde vi byttet om, ville vi fått det annerledes: peker til konstant int, ikke en konstant peker altså. Vi får håpe det ikke blir for mye på en gang som er utradisjonellt for leserene her. Kanskje jeg skal slutte å si C/C++ og utelukkende si at "dette gjelder C++". Lenke til kommentar
Anbefalte innlegg