Programy

/*

// zdefiniowac klasê o nazwie chrystus(abstrakcja chyba)

// z tej klasy nie można stworzyĉ obiektu

//klasa chrystus zawiera w polu prywatnym definicjê klasy anio³ek

//klasa chrystus posiada dynamicznı tablicê anio³ków

 

//istnieje równiez bazowa klasa koœció³, która jest podstawowa klası dla wystêpujıcych klas

//po tej klasie dziedziczı - koœció³ katolicki oraz koœció³ prawos³awny

//a po tych dwóch klasa koœció³ protestancki

 

//nastepnie zdefiniowaĉ klasê prezydent

//w polu prywatnym tej klasy umieœciĉ tablicê koœcio³a(dynamicznı tablicê koœcio³ów)

//za pomocı funkcji virtualnej zademonstrowaĉ

//że prezydent klêczy przed każdym koœcio³em

zademonstrowaĉ, ze prezydent wyznaje tylko chrystusa, wiêc należy do koœcio³a katolickiego

klasa chrystus nie może byĉ obiektem

*/

#include <iostream>

#include <string>

#include <vector>

using namespace std;

 

class Chrystus

{

private:

class Aniolek

{

char imie;

};

 

static Aniolek* aniolki;

public:

virtual ~Chrystus() = 0;

void setA(char imie, int i)

{

//aniolki[i] = new Aniolek;

//aniolki[i]->imie = imie;

}

void getA(int i)

{

//cout << aniolki[i]->imie;

}

 

static void createAngel(int size)

{

aniolki = new Aniolek[size];

}

};

 

//Aniolek Chrystus::aniolki = nullptr;

 

class Kosciol

{

public:

virtual void gdzie()

{

cout << "kosciol " << endl;

}

};

 

class K_Katolicki : virtual public Kosciol

{

public: 

void gdzie()

{

cout << "kosciolem katolickim" << endl;

}

};

 

class K_Prawoslawny : virtual public Kosciol

{

public:

void gdzie()

{

cout << "kosciolem prawoslawnym" << endl;

}

};

 

class K_Protestancki : public K_Katolicki, public K_Prawoslawny

{

public:

void gdzie()

{

cout << "kosciolem protestanckim" << endl;

}

};

 

class Prezydent

{

private:

Kosciol** tablica = new Kosciol*[3]; //Tak nie robimy!!

 

public:

virtual void klecze(int i)

{

cout << "klecze przed ";

tablica[i]->gdzie();

}

 

template<typename T>

void setK(int i)

{

tablica[i] = new T;

}

 

Prezydent() 

cout << "stalem sie prezydentem" << endl;

Kosciol** tablica = new Kosciol*[3];

}

};

 

int main()

{

Prezydent* prezydent = new Prezydent();

prezydent->setK<K_Katolicki>(0);

prezydent->setK<K_Prawoslawny>(1);

prezydent->setK<K_Protestancki>(2);

 

for (int i = 0; i < 3; i++)

{

prezydent->klecze(i);

}

 

 

delete prezydent;

 

cout << endl << "nacisnij klawisz aby zakonczyc" << endl;

//getchar();

return 0;

}



Dodaj komentarz






Dodaj

© 2013-2024 PRV.pl
Strona została stworzona kreatorem stron w serwisie PRV.pl