Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen perusteet. Jo varsin pian olet hankkinut itsellesi tarpeeksi tietoa omien C++-sovellustesi ohjelmoimiseksi. Miksi C++? C++ on perustellusti kaikkein eniten käytössä oleva ohjelmointikieli ja sen suosio kasvaa edelleen. Ammattilaiset käyttävät sitä sovelluskehityksessä, koska se on varsin joustava ja tehokas. Se on myöskin huomattavasti helpommin opittavissa kuin useimmat kuvittelevat. Oikealla opastuksella C++:n oppiminen on helpompaa kuin kuvitteletkaan. Kehittämällä vähitellen C++:n taitojasi, opit kielen, jota puhuvat jo miljoonat, ja saat uuden, tehokkaan työkalun työkaluvalikoimaasi. Miksi ANSI/ISO-standardi? Vuodesta 1989 lähtien C++ on ollut jatkuvan standardoimisprosessin kohteena. Tätä työtä on johtanut ANSI/ISO-ryhmä, jonka tavoitteena on ollut kehittää C++-kielen maailmanlaajuinen standardi. Marraskuun neljäntenätoista 1997 tämä ryhmä sai valmiiksi lopullisen ehdotuksen kansainväliseksi standardiksi (ISO/IEC FDIS 14882)*. Varsinainen ehdotuksen hyväksyntä on vielä avoinna, mutta kaikki i :n pisteet ja t :n viivat ovat kohdallaan vielä vuoden 1998 aikana. *Lisätietoja lehdistötiedotteesta: http://www.research.att.com/~bs/iso_release.html. Nykyinen standardiehdotus: http://www.maths.warwick.ac.uk/cpp/pub/ Lisätietoja comp.std.c++ -FAQ:sta: http://reality.sgi.com/employees/austern_mti/std-c++/fag.html 1
C++ Ohjelmoijan käsikirja Standardoimisprosessi on ollut vaikea - ensimmäinen standardiehdotus maaliskuussa 1995 sai aikaan muutamia suuria muutoksia kieleen. Tästä sekä kielen jatkuvasta normaalista kehittymisestä johtuen, lopullinen standardiehdotus muuttaa suuren joukon C++-kirjoista aikansa eläneiksi. Tämä seikka on ollut yhtenä motiivina tämän kirjan kirjoittamiselle. Se oli standardin teoriaa, mutta miten hyvin standardi vastaa käytännön tarpeita? C++-kääntäjiä on olemassa kaikkialla, kaikille mahdollisille laitealustoille. Tukevatko nämä kääntäjät standardia täysin? Jotkut kääntäjät suoriutuvat tästä paremmin kuin toiset, monet käyttävät vielä vuoden 1995 standardiehdotusta, joten odotettavissa on suuri joukko päivityksiä. Mitä ilmeisimmin haluat kuitenkin kääntää ja tutkia seuraavissa luvuissa esitettyjä lähdetekstejä. Tässä kirjassa esitämme standardin sellaisena kuin se tällä hetkellä on, mutta niissä kohdissa, joissa standardia ei ole laajasti toteutettu, kerromme sen. Onneksi tällainen tilanne ei ole kovinkaan yleinen. Lähdeteksti on siis standardin mukaista. Merkintätavat Kirjassa käytetään erilaisia tekstityylejä helpottamaan erityyppisten tietojen erottamista. Seuraavassa on esimerkkejä selityksineen käytetyistä tyyleistä: Nämä laatikot sisältävät tärkeää, erityisesti muistettavaa tietoa, joka liittyy kiinteästi käsiteltävään aiheeseen. Näitä laatikoita käytetään esimerkiksi tärkeiden C++ohjelmointitapojen esittelyyn. Taustatiedot näytetään tällaisella tyylillä.! Vinkki-osat lisäävät tietoasi käsiteltävästä aiheesta. Luettelotyyppinen tieto esitetään seuraavasti: Tärkeät sanat ovat lihavoituja. Näppäimistöltä painettavat näppäimet, kuten Ctrl ja Enter, ovat kursivoituja. Kaikki tiedostot, funktioiden nimet ja lähdetekstit ovat tällä tyylillä: Video.cpp 2
Johdanto Ensimmäisen kerran esitettävä tai muuten asiaankuuluva lähdeteksti on seuraavassa muodossa: #include <iostream> int main() { return 0; } kun taas aikaisemminkin esitetty lähdeteksti, tai muuten vain vähemmän asiaankuuluva lähdeteksti näyttää tältä: Laatikko* plaatikko = ppahvi; Ohjelmien tulostus näyttää seuraavalta: Aikasi on jo ohi... Harjoitukset Jokaisen luvun lopussa on harjoituksia, joiden tarkoituksena on testata siinä ja aikaisemmissa luvuissa käsiteltyjä aiheita. Mallivastaukset kaikkiin harjoituksiin löytyvät kirjan WWW-sivuilta (katso alla). Jos keksit hienon ratkaisun johonkin harjoitukseen, lähetä se meille ja ratkaisusi saattaa löytyä WWWsivuilta! Kerro mielipiteesi Olemme yrittäneet tehdä tästä kirjasta mahdollisimman ajantasalla olevan ja helposti luettavan. Kaikkein tärkeintä on kuitenkin se, miten sinä koet kirjan ja mitä sinä saat siitä irti. Kerro meille mielipiteesi, oli se sitten positiivinen tai negatiivinen. Lähetä mielipiteesi joko postitse tai sähköpostin välityksellä (palvelu@itpress.fi). Lähdetekstit Lähdeteksti ja mallivastaukset löytyvät IT Pressin WWW-sivuilta http://www.itpress.fi/kirjat/cppohkk.htm sekä Wroxin WWW-sivuilta http://www.wrox.com 3
C++ Ohjelmoijan käsikirja CD-levy Oheisella CD-levyllä on Microsoft Visual C++ 6.0 Introductory Edition, jolla voidaan harjoitella ohjelmointia. Jos CD-levy on viallinen, palauta se IT Pressiin, jolloin saat uuden CD-levyn. ÄLÄ PALAUTA CD- LEVYÄ MICROSOFTIIN. CD-levyä koskevat kyselyt tehdään IT Pressiin. ÄLÄ KYSY TUKEA MICROSOFTILTA. Suorita asennus seuraavasti: Aseta CD-levy CD-asemaan. Jos asennusohjelma ei käynnisty automaattisesti, valitse Windowsin Käynnistä (Start) -valikosta Suorita (Run). Aseta riville CD-aseman kirjaintunnus (esimerkiksi D:) ja paina OK. Kaksoisnapauta Setup-kuvaketta. Jos käytössä ei ole Internet Explorer 4.01- tai uudempaa versiota, asennusohjelma antaa mahdollisuuden päivittää Internet Explorer -ohjelman versioon 4.01 englanninkielisenä. Asennus voidaan myös keskeyttää, jolloin voidaan asentaa Internet Explorerin uudempi tai muun kielinen versio. Tämän jälkeen asennus voidaan aloittaa alusta. Vastaa asennusohjelman kysymyksiin ja valitse vaihtoehtoja. Useimmille on sopivaa valita tyypillinen (Typical) asennusvaihtoehto. Muokattava (Custom) -vaihtoehdolla voidaan vaikuttaa asennettaviin komponentteihin. Virheet ja päivitykset Kaikki mahdollinen on tehty, jotta kirjan tekstissä ja lähdeteksteissä ei olisi virheitä. Virheet ovat kuitenkin luontaista ihmiselle, joten haluamme pitää sinut lukijana tietoisena kaikista virheistä, kun ne saadaan selville ja korjatuksi. Kun vierailet Wroxin englanninkielisillä WWW-sivuilla (http://www.wrox.com), käy myöskin virhesivulla (Errata), jonka tarkoituksena on korjata kirjan pienet virheet. Sivulla kerrotaan keino ongelman kiertämiseen sekä ratkaisu ongelmaan. Jokaiselle julkaisemallemme kirjalle on omat virheluettelot. 4
Johdanto 5
6 C++ Ohjelmoijan käsikirja