Deprecated: Function set_magic_quotes_runtime() is deprecated in /DISK2/WWW/lokiware.info/mff/wakka.php on line 35
Programování v C++
Přednášející: RNDr. David Bednárek
Přednášky
Odkaz pro C++ mazáky
Co se bude dělat na které přednášce, abyste věděli, kdy má smysl chodit, a kdy si radši zajděte do kina: http://ulita.ms.mff.cuni.cz/mff/sylaby/prg029.html
1. přednáška 21. 2. 2007 — úvod
- Zapsat se v grupíčku na nějaká cvičení do 4. března (pokud ještě nejsem zapsaný. V případě pře-zapsání kontaktovat aspoň nového cvičícího (protože sám se odhlásit z grupíčku prý nemůžu).
- Zápočtový test je ve zkouškovém období. Obvykle to na první pokus dají tak dvě třetiny. Může se psát i v čistém C. Ale je třeba znalost IDE Visual C++ :(. Zkouška je oproti tomu jednoduchá (aspoň v tomhle semestru). Na zápoťák jsou dva pokusy a třetí dostanu, když mám zkoušku a splněné domácí úkoly. Ke zkoušce jdu nezávisle na zápočtu. Bez zápočtu ale zkouška propadá. Zkoušející jsou ale tak hodní, že jedničky a dvojky příští rok uznají.
- Nové učební plány už tyhle předměty nebudou obsahovat, ale my ho kdyžtak ještě můžeme splnit (ale přednášky nebudou). Když ale začneme studovat od prváku, budeme mít jiné předměty (místo Pascalu C# apod).
- Závěr: Zkoušku i zápočet se vyplatí udělat.
- V místnosti 209 můžeme dostat CD s nějakou ořezanou verzi VC++. (Slyšel jsem ale, že jde normálně stáhnout stáhnout od MS.)
- Co se budeme učit a literatura
- The C Programming Language od K&R nám nedoporučuje, protože je to prý zastaralé (Na můj dotaz Bednárek tvrdil, že i druhé vydání je zastaralé. Možná neví, že druhé vydání popisuje ANSI C, tedy přesně to, co říkal, že nás bude učit, ale raději jsem ho nepřesvědčoval.)
- Dnešní C++ zase neodpovídá tomu co psal Stroustrup.
- C++ se v prvním semestru téměř neprobírá. Nebudeme se učit ani C99. Protože se prý používá jen pro programování praček. (Takže budeme dělat převážně ANSI/ISO C 89 (resp. 90).)
- Doporučuje z českých knížek Viriuse, jinak třeba Eckela.
- pro pokročilejší:
- Alexandrescu-Sutter: C++ Coding Standards (2005)
- knížky o programming patterns
2. přednáška 28. 2. 2007 — do slajdu 31
3. přednáška 8. 3. 2007 — do slajdu 40
- Bednárek říkal, že vynechání jména parametru v definici funkce je způsob, jak překladači sdělit, že daný parametr nepoužíváme. Přišlo mi to nějaké podezřelé, a právem, ono to v C nejde. Pokud používáte varování u nepoužitých parametrů, ale někdy chcete parametr ignorovat záměrně (třeba v nějakém callbacku), v C se to řeší nejelegantněji pomocí přetypování na void (a v C++ to jde samozřejmě také):
-
Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/java.php on line 5
/* int doSomethingWithAB(int a, int b, Info*){ ... } se v C nepřeloží */
int doSomethingWithAB(int a, int b, Info* extraInfo){
(void) extraInfo;
return a^b;
}
3. přednáška 8. 3. 2007 — do slajdu 40
- Pokud nám stejně dobře posloužíí var++ jako ++var, měli bychom používat preinkrementaci, protože v jazyce ++C se to za určitých okolností proběhne rychleji. V C je to jedno.
Odkazy