Luettelujen alustaminen konstruktorissa?

Olen kirjoittanut ohjelmaa, jossa autolle on tehty luokka "auto". Ajattelin kokeilla värejä luettelutyyppisinä (enum) seuraavasti:

enum vari {musta, valkoinen,
sininen, punainen};

Pulmana on siis värin alustaminen konstruktorissa mustaksi (Käyttäjä vois myöhemmin muutella). Meneekö se koodi tällain:

auto::auto()
{
... //Muuta koodia
vari {musta};
... //Muuta koodia
}

Jos ei mene noin niin miten sen saa?
3384
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

enum vari {musta, valk}; esittelee vasta enum-tyypin.

muuttuja pitää esitellä:

vari auton_vari;

ja arvo asetetaan:

auton_vari = musta;

Äänestä
  • Tiedän, että muuttuja pitää esitellä pääohjelmassa, mutta esitelläänkö muuttuja myös sovellustiedostossa, jossa on konstruktorin koodi?

    Tämä juttu on jäänyt hieman epäselväksi.

    Äänestä

  • Alustus kuntoon kirjoitti:

    Tiedän, että muuttuja pitää esitellä pääohjelmassa, mutta esitelläänkö muuttuja myös sovellustiedostossa, jossa on konstruktorin koodi?

    Tämä juttu on jäänyt hieman epäselväksi.

    Luokan esittelyyn muuttuja, ja enum-tyypin esittely pitää sitä ennen olla esitelty jossakin, esim. auto.h-tiedostoon:

    ---

    enum VARI {MUSTA, PUNAINEN};

    class Auto {
    public:
    Auto();
    virtual ~Auto();

    private:
    VARI vari;
    };

    ---

    ja auto.cpp

    ---

    #include "auto.h"

    Auto::Auto() {
    vari = MUSTA;
    }

    ...

    Äänestä

Kommentoi aloitusta


Alustus kuntoon kirjoitti:

Olen kirjoittanut ohjelmaa, jossa autolle on tehty luokka "auto". Ajattelin kokeilla värejä luettelutyyppisinä (enum) seuraavasti:

enum vari {musta, valkoinen,
sininen, punainen};

Pulmana on siis värin alustaminen konstruktorissa mustaksi (Käyttäjä vois myöhemmin muutella). Meneekö se koodi tällain:

auto::auto()
{
... //Muuta koodia
vari {musta};
... //Muuta koodia
}

Jos ei mene noin niin miten sen saa?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu