Tehtävä:
Tuhoajan tehtävänä oliota tuhottaessa on huolehtia siihen kuuluvien dynaamisten tietojäsenten tuhoamisesta. Olio voi esimerkiksi sisältää toisen olion, jonka tuhoaminen on emo-olion vastuulla. Koska emme ole toistaiseksi käsitelleet dynaamisia tietojäseniä, emme voi tässä vaiheessa harjoitella myöskään niiden tuhoamista.
Tässä tehtävässä sinun tulee laatia luokalle Piste tuhoajan toteutus, joka suoritetaan, kun luokasta muodostettu olio tuhotaan. Purkajaan ei toteuta muistinhallintaan tai esimerkiksi tietojen tallentamiseen liittyviä toimintoja, vaan sen ainoana tehtävänä on tulostaa näytölle teksti: "Tuhoaja suoritettu ja olio tuhottu.". Tuhoaja on esitelty valmiiksi luokan "Piste" määrittelyssä.
Example output:
Anna muodostettavan olion x-koordinaatti: 34
Anna muodostettavan olio y-koordinaatti: 22
Pisteen x-koordinaatti: 34 Pisteen y-koordinaatti: 22
Tuhoaja suoritettu ja olio tuhottu.
Vastaus:
//** Pre-defined code in the assignment **//
#include <iostream>
using namespace std;
class Piste
{
public:
Piste(int x, int y);
~Piste();
void TulostaPiste();
void AsetaPiste(int x, int y);
private:
int x_;
int y_;
};
Piste::Piste(int x, int y): x_(x), y_(y)
{
}
//** ---------- ---------- ---------- **//
Piste::~Piste()
{
cout << "Tuhoaja suoritettu ja olio tuhottu.";
}
//** Pre-defined code in the assignment **//
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;
}
int main()
{
int x, y;
cout << "Anna muodostettavan olion x-koordinaatti: ";
cin >> x;
cout << "Anna muodostettavan olion y-koordinaatti: ";
cin >> y;
Piste* pisteolio = new Piste(x, y);
pisteolio->TulostaPiste();
delete pisteolio;
return 0;
}
//** ---------- ---------- ---------- **//