Olio-ohjelmoinnista

Terve,

Elikkäs teen tehtävää c olio-ohjelmointiin liittyen mutten vain ymmärrä mitä teen väärin. Pitäisi rakentaa oletusmuodostin mutta ei vaan järki leikkaa miten.

[code]
#include<iostream>
using namespace std;

class Piste
{
public:
Piste();
void TulostaPiste();
void AsetaPiste(int x, int y);
private:
int x_;
int y_;
};

void Piste::TulostaPiste()
{
cout << "Pisteen x-koordinaatti: " << x_ << endl;
cout << "Pisteen y-koordinaatti: " << y_ << endl;
}

void Piste::AsetaPiste(int x, int y)
{
x_ = x;
y_ = y;
}

//*Tähän pitäisi laittaa koodi*
//Olen yrittänylaittaa mm.
class muodostaja()
{
public:
pisteolio();

private:
y_ = 1;
x_ = 1;
}

sekä

void Piste::Pisteolio()
{
y_ = 1;
x_ = 1;
}

//kumpikaan ei toimi

int main()
{
piste pisteolio;
pisteolio.Tulostapiste;
return 0;
}
9396
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Luokan konstruktorifunktio on saman niminen kuin luokka, eikä sille ole määritelty palautusarvoa. Oletusmuodostimella ei myöskään ole parametreja. Eli jos luokan nimi on vaikka Piste ja sillä on kaksi jäsentä x ja y, jotka oletusmuodostimen pitäisi asettaa nollaksi seuraavan pitäisi toimia

class Piste
{
public:
... (jäsenmääritteyitä)

Piste()
{
x = y = 0;
}

... lisää määrittelyitä
}

1Äänestä

Mkarin mukaan tuo setteri AsetaPiste(x, y) on pahin virhe mitä ei saisi viljellä koodissa, miksi koulu opettaa virheellistä ohjelmointia?

Äänestä
  • Tulee mieleen heti että pitäisi sytyttää heti ruudulle joku jonkun värinen piste johonkin kohtaan?

    Olioioissa ei nyt ole mitään sen kummallisempaa kuin missään tavallisissa c-kielen struct-jutuissakaan, kaikissa voi olla progressiivisia itseään itse generoivia funktioita aina sisällä, olio on vain joku JÄNNÄ uusi nimi.

    Äänestä

  • Näyttäisi siltä, että koulu opettaa oikein ja tässä nyt kysytään miten asia tehdään. Eli AsetaPIste pitäisi poistaa constructorin kysyä X ja Y.

    Äänestä

onpa tuo tytöille niin kiinnostavaa, tässä on hyvä perus c-kielinen tehokas koodi;

pushing ALL processorros operations in stack = ready for fAST EXECUTION WITH DMA ...

Äänestä
  • Sitten perään vielä että: loading all available DMA channels for memory immediate memory transfer, expliciply ALL DMA harddrive channels are now "not available because of this code".

    Äänestä

Terve,
Eilen näin Alien olion. Olen Alien olio.

Äänestä
  • Joo on kerrassaan hauskaa tytöillä ohjelmoinnissa tehdä Olioita.

    Sitten kun menee kotiin lomalle ja isäntä kysyy mitä on opittu?
    - Teimme Olioita.

    Äänestä

Tällainen voi mennä jo assembly-ohjelmoinninkin puolelle: laitat matalalta tasolta DMA-kanavia varatuiksi Direct Memory Access... laitat niille sitten että ovat valmiita nopeisiin muistin siirtoihin, esim. grafiikkakortin ja keskusmuistin välillä tai kovalevyn välillä.

Silloin kun DMA-kanavat kun ilmoittavat, valmis, niin tuollainen muistin siirto erittäin nopeata, ajaa itseasiassa kaiken muun ylikin tuollaiset siirrot.

Äänestä

Kommentoi aloitusta


idiootti kirjoitti:

Terve,

Elikkäs teen tehtävää c olio-ohjelmointiin liittyen mutten vain ymmärrä mitä teen väärin. Pitäisi rakentaa oletusmuodostin mutta ei vaan järki leikkaa miten.

[code]
#include<iostream>
using namespace std;

class Piste
{
public:
Piste();
void TulostaPiste();
void AsetaPiste(int x, int y);
private:
int x_;
int y_;
};

void Piste::TulostaPiste()
{
cout << "Pisteen x-koordinaatti: " << x_ << endl;
cout << "Pisteen y-koordinaatti: " << y_ << endl;
}

void Piste::AsetaPiste(int x, int y)
{
x_ = x;
y_ = y;
}

//*Tähän pitäisi laittaa koodi*
//Olen yrittänylaittaa mm.
class muodostaja()
{
public:
pisteolio();

private:
y_ = 1;
x_ = 1;
}

sekä

void Piste::Pisteolio()
{
y_ = 1;
x_ = 1;
}

//kumpikaan ei toimi

int main()
{
piste pisteolio;
pisteolio.Tulostapiste;
return 0;
}

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