Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
h3. 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?

...

 !LuokkaSotku.png|border=1!

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:

...

Image Removed

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 [olioiden|Oliot] avulla.

...



On muistettava, että muuttujia ei voi normaalisti alustaa luokan esittelyn yhteydessä, vaan ne täytyy  alustaa muodostimessa, jossa  oliot luodaan.