Uzupełnij Klasy K1, K2, K3 oraz W tak aby program można było poprawnie zbudować i wykonać Dane są klasy Pkt1, Pkt2, Pkt3 jak niżej (oraz klasa K, której istnienie wynika z treści funkcji main() ): class Pkt1{
class Pkt2{
//...
//..
public:
private:
Pkt1(){ cout << "Dziala konstruktor klasy K1" << endl; }
Pkt2(){ cout << "Dziala konstruktor klasy Pkt2" << endl; }
private:
public:
~Pkt1(){cout << "Dziala destruktor klasy K1" << endl; }
~Pkt2(){cout << "Dziala destruktor klasy Pkt2" << endl; }
private:
public:
void showMe(){ cout << "Jestem Punktem1" << endl; }
void showMe(){ cout << "Jestem Punktem2" << endl; }
public:
public:
// ....
// ....
};
};
class Pkt3{
void* W::stworzPunkt(unsigned int uItem){
private:
switch( uItem ){
Pkt3(){cout << "Dziala konstruktor klasy Pkt3" << endl; }
case 0: return (void*)(new Pkt1());
~Pkt3(){ cout << "Dziala destruktor klasy Pkt3" << endl; }
private:
case 1: return (void*)(new Pkt2()); void showMe(){ cout << "Jestem Punktem3" << endl; }
case 2: return (void*)(new Pkt3()); public:
};
// ....
return 0;
};
};
Oraz dana jest funkcja main( ): int main(){
Pkt1* sPkt1 = (Pkt1*)( W::funkcjaStworz_Pkt(0) ); Pkt2* sPkt2 = (Pkt2*)( W::funkcjaStworz_Pkt(1) ); Pkt3* sPkt3 = (Pkt3*)( W::funkcjaStworz_Pkt(2) ); W::kasujObiekt( sPkt1 ); W::kasujObiekt( sPkt2 ); W::kasujObiekt( sPkt3 ); Pkt1* pP1 = ::funkcjaStworz_Pkt1(); Pkt2* pP2 = ::funkcjaStworz_Pkt2(); Pkt3* pP3 = ::funkcjaStworz_Pkt3(); W::wywolajDlaPunktuFunkcjeShowMe( pP1 ); W::wywolajDlaPunktuFunkcjeShowMe( pP2 ); W::wywolajDlaPunktuFunkcjeShowMe( pP3 );
::kasujObiekt( pP1 );
::kasujObiekt( pP2 );
::kasujObiekt( pP3 ); return 0;
}