C++ fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.9 KiB

4 years ago
  1. ## 3 Tuhoajan rakentaminen
  2. **Tehtävä:**
  3. 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.
  4. 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ä.
  5. Example output:
  6. ```
  7. Anna muodostettavan olion x-koordinaatti: 34
  8. Anna muodostettavan olio y-koordinaatti: 22
  9. Pisteen x-koordinaatti: 34 Pisteen y-koordinaatti: 22
  10. Tuhoaja suoritettu ja olio tuhottu.
  11. ```
  12. **Vastaus:**
  13. ```
  14. //** Pre-defined code in the assignment **//
  15. #include <iostream>
  16. using namespace std;
  17. class Piste
  18. {
  19. public:
  20. Piste(int x, int y);
  21. ~Piste();
  22. void TulostaPiste();
  23. void AsetaPiste(int x, int y);
  24. private:
  25. int x_;
  26. int y_;
  27. };
  28. Piste::Piste(int x, int y): x_(x), y_(y)
  29. {
  30. }
  31. //** ---------- ---------- ---------- **//
  32. Piste::~Piste()
  33. {
  34. cout << "Tuhoaja suoritettu ja olio tuhottu.";
  35. }
  36. //** Pre-defined code in the assignment **//
  37. void Piste::TulostaPiste()
  38. {
  39. cout << "Pisteen x-koordinaatti: " << x_ << endl;
  40. cout << "Pisteen y-koordinaatti: " << y_ << endl;
  41. }
  42. void Piste::AsetaPiste(int x, int y)
  43. {
  44. x_ = x;
  45. y_ = y;
  46. }
  47. int main()
  48. {
  49. int x, y;
  50. cout << "Anna muodostettavan olion x-koordinaatti: ";
  51. cin >> x;
  52. cout << "Anna muodostettavan olion y-koordinaatti: ";
  53. cin >> y;
  54. Piste* pisteolio = new Piste(x, y);
  55. pisteolio->TulostaPiste();
  56. delete pisteolio;
  57. return 0;
  58. }
  59. //** ---------- ---------- ---------- **//
  60. ```