Informator i Kina, Dag 2

Andra kursdagen inleddes med en halsbrytande bussfärd genom tät trafik av bilar, bussar, cyklar och mopeder. Konstigt nog har jag inte sett till en enda MC. Jag börjar begripa hur trafiken funkar nu: Kör på, eller cykla på eller gå på, tills du hinner före “den andre” med några centimetrar tillgodo, då stannar denne snällt och släpper förbi. Hmmm. Har funderat på om jag skulle kunna tillämpa den taktiken i Stockholms-trafiken, men misstänker att folk inte skulle reagera lika snabbt och resultatet skulle be plåtskador. Här verkar det fungera på något mystiskt sätt, utan att direkta incidenter resulterar i kollisioner.

Hela dagen har vi gått igenom regelsystemet för C++:

*   Regelsystemet för klasser. Synlighet. Konstruktorer, vilka och varför som skapas av kompilatorn, samt tänkbara fallgropar.
*   Vilkar typer av medlemmar man kan ha i klasser och hur de hanteras, såsom referenser, konstanter, inre typer och mer.
*   Hur exceptions hanteras och vad som händer bakom kulisserna med hjälp av setjmp/longjmp. Vilka nya exceptions som finns i C++11 bibliotektet.
*   Hantering har template funktioner och klasser. T.ex. det nya att man kan ha variabelt antal template parametrar.
*   Om min favorit, operator överlagring. Tonvikten låg, precis som för övriga kapitel, på regelsystemet, dvs vad man får inte och får göra. Jag tog också upp en del specialfall, såsom tilldelnings-operatorn, index-operatorn, pil-operatorn, funktionsanrops-operator och new/delete operatorerna.
*   Sist gjorde jag rent hus med vanföreställningen att C++ på något vis skulle ha sämre prestanda än C, genom att visa steg för steg hur C++ kompilatorn representerar klasser, metoder, operatorer, konstruktorer/destruktorer, arv och virtuella funktioner. Det sistnämnda är extra viktigt eftersom man här och där stöter på uppfattningen att dynamisk bindning skulle vara långsamt. Det gäller dock inte för C++, eftersom det som händer bakom kulisserna är en indexering av en global array av funktionspekare, följt av ett indirekt funktionsanrop.

I morgon kommer vi prata om biblioteket.

Tjing tjong från Nanjing /jens

Författare: Jens Riboe