Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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? Image Added

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 Added

Luokka esitellään seuraavasti:

Code Block
class CElainOmaLuokka
{
    // Tänne luokan esittely, eli jäsenmuuttujat
    QString Nimi;

    //ja metodit...
}   eli funktiot
    AsetaNimi(QString nimi);
 };   // <- Muistakaa puolipiste loppuun!

Metodeihin

...

etuliitteitä

...

ei

...

yleensä

...

laiteta.

...

Luokan palveluita käytetään olioiden avulla.

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