#include using namespace std; class Toon; //Kirjeldus, et see klass tuleb kunagi hiljem class Punkt{ int x, y; Toon *t; public: Punkt(); Punkt(int ux, int uy); Punkt(Punkt& p); ~Punkt(); void tryki(); void muudaAsukoht(int ux, int uy); int asukohtX(){return x;} int asukohtY(){return y;} void maaraToon(Toon *utoon); }; class Toon{ int p, r, s; int loendur; //mitu punkti kasutavad seda tooni public: Toon(int up, int ur, int us); void tryki(); void suurendaLoendurit(); void vahendaLoendurit(); }; Punkt::Punkt(){ x=0; y=0; t=NULL; cout << "Loodi punkt" << endl; } Punkt::Punkt(int ux, int uy){ x=ux; y=uy; t=NULL; cout << "Loodi punkt kohal " << x << " " << y << endl; } Punkt::Punkt(Punkt& p){ x=p.x; y=p.y; t=p.t; t->suurendaLoendurit(); cout << "Kopeeriti punkt " << x << " " << y << endl; } Punkt::~Punkt(){ if(t!=NULL){ t->vahendaLoendurit(); } cout << "Punkti ots" << endl; tryki(); } void Punkt::tryki(){ cout << "[" << x << ", " << y << "] "; if(t!=NULL){ t->tryki(); } else { cout << endl; } } void Punkt::muudaAsukoht(int ux, int uy){ x=ux; y=uy; } void Punkt::maaraToon(Toon *utoon){ if(t!=NULL){ t->vahendaLoendurit(); } t=utoon; t->suurendaLoendurit(); cout << "Pandi toon " << endl; } Toon::Toon(int up, int ur, int us){ p=up; r=ur; s=us; loendur=0; } void Toon::tryki(){ cout << "(" << p << ", " << r << ", " << s << ") - " << loendur << endl; } void Toon::suurendaLoendurit(){ loendur++; } void Toon::vahendaLoendurit(){ loendur--; } int main(void){ Punkt p1(3,8); p1.tryki(); Toon *punaseviit=new Toon(255, 0, 0); p1.maaraToon(punaseviit); p1.tryki(); Punkt p2=p1; p2.tryki(); p1.maaraToon(new Toon(255, 255, 0)); p2.tryki(); Punkt *punktiviit=new Punkt(6, 9); punktiviit->maaraToon(punaseviit); punktiviit->tryki(); delete punktiviit; punaseviit->tryki(); }