...
Luokka
...
(class)
...
Luokat
...
ovat
...
abstraktioita,
...
jotka
...
mallintavat
...
reaalimaailman
...
asioita.
...
Luokat
...
tarjoavat
...
palveluita
...
(metodit)
...
ja
...
voivat
...
tallentaa
...
tilansa
...
jäsenmuuttujiin.
...
Luokkien
...
mallintaminen
...
on
...
oma
...
taiteenlajinsa,
...
eikä
...
ole
...
välttämättä
...
oikeata
...
tapaa
...
mallintaa
...
asioita,
...
on
...
vain
...
parempia
...
ja
...
huonompia
...
tapoja.
...
Seuraavassa
...
kuvassa
...
on
...
esitetty
...
erään
...
mittausohjelman
...
luokkamalli,
...
jonka
...
nimesin
...
luokkasotkuksi,
...
jokainen
...
voi
...
päätellä
...
miksi?
...
Ohjelmassa käytettävät luokat esitellään yleensä omissa .h -tiedostoissaan ja luokan metodit toteutetaan omissa .cpp -tiedostoissaan. Toisaalta C++-kääntäjän
...
kannalta
...
ei
...
ole
...
väliä,
...
onko
...
luokat
...
omissa
...
tiedostoissaan
...
vai
...
kaikki
...
samassa.
...
Kun
...
luokkien
...
lukumäärä
...
kasvaa,
...
on
...
erittäin
...
tärkeätä,
...
että
...
ne
...
löytyvät
...
helposti.
...
Jos
...
kaikki
...
luokat
...
ovat
...
samassa
...
tiedostossaan,
...
tämä
...
vaikeuttaa
...
löytämistä
...
huomattavasti.
...
Luokka
...
UML-mallina:
Luokka esitellään seuraavasti:
Code Block |
---|
!EkaLuokka.png|border=1! Luokka esitellään seuraavasti: {code} class OmaLuokka { // Tänne luokan esittely, eli jäsenmuuttujat QString Nimi; //ja metodit eli funktiot AsetaNimi(QString nimi); }; // <- Muistakaa puolipiste loppuun! {code} |
Metodeihin
...
etuliitteitä
...
ei
...
yleensä
...
laiteta.
...
Luokan
...
palveluita
...
käytetään
...
...
avulla.
...
On
...
muistettava,
...
että
...
muuttujia
...
ei
...
voi
...
normaalisti
...
alustaa
...
luokan
...
esittelyn
...
yhteydessä,
...
vaan
...
ne
...
täytyy
...
alustaa
...
muodostimessa,
...
jossa
...
oliot
...
luodaan.