Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Osoba{
- public:
- char* imie;
- int wiek;
- Osoba(const Osoba& o){
- wiek = o.wiek;
- imie = new char[strlen(o.imie)+1];
- strcpy(imie, o.imie);
- }
- Osoba(){
- imie = new char[strlen("Krzysztof")+1];
- strcpy(imie, "Krzysztof");
- wiek = 21;
- cout<<"Utworzono: "<<imie<<", "<<wiek<<endl;
- }
- Osoba(char* i, int w)
- : imie(i), wiek(w)
- {
- cout<<"Utworzono: "<<imie<<", "<<wiek<<endl;
- }
- ~Osoba(){
- delete [] imie;
- cout<<"Zniszczono obiekt"<<endl;
- }
- void show(){
- cout<<imie<<", "<<wiek<<endl;
- }
- };
- class Rachunek{
- public:
- Osoba* wlasciciel;
- double stan_konta;
- Rachunek(Osoba* o, double stan){
- wlasciciel = o;
- stan_konta = stan;
- }
- ~Rachunek(){
- wlasciciel->~Osoba();
- }
- Rachunek(const Rachunek &r){
- wlasciciel = r.wlasciciel;
- stan_konta = r.stan_konta;
- }
- void show(){
- wlasciciel->show();
- cout<<stan_konta<<endl<<endl;
- }
- };
- class Bank{
- public:
- Rachunek** tab;
- int rachunki;
- Bank(){
- tab = new Rachunek*[0];
- rachunki = 0;
- }
- void otworzNowyRachunek(Rachunek* r){
- Rachunek** tmp = new Rachunek*[rachunki];
- for(int i=0; i<rachunki; i++){
- tmp[i] = tab[i];
- }
- rachunki++;
- tab = new Rachunek*[rachunki];
- for(int i=0; i<rachunki; i++){
- tab[i] = tmp[i];
- }
- Rachunek& rr = *r;
- tab[rachunki-1] = new Rachunek(rr);
- show();
- }
- void zmienWlasciciela(int r, Osoba* o){
- tab[r-1]->wlasciciel = o;
- }
- void usunRachunek(int r){
- tab[r-1]->~Rachunek();
- }
- void show(){
- for(int i=0; i<rachunki; i++){
- tab[i]->show();
- }
- }
- };
- int main(){
- /*
- char *x;
- x = "test";
- Osoba* o1 = new Osoba(x, 10);
- Osoba* o2 = new Osoba(*o1);
- cout<<o1->imie<<endl<<o2->imie<<endl;
- o1->imie = "t";
- cout<<o1->imie<<endl<<o2->imie<<endl;
- */
- /*
- Osoba* o1 = new Osoba("Krzysztof", 21);
- Osoba* o2 = new Osoba();
- o2->show();
- Osoba& ro = *o2;
- Osoba* o3 = new Osoba(ro);
- o2->show();
- o3->show();
- delete o2;
- */
- Bank* bank = new Bank();
- Osoba* o1 = new Osoba("Tomek", 30);
- Osoba* o2 = new Osoba("Malgorzata", 28);
- Rachunek* r1 = new Rachunek(o1, 100);
- Rachunek* r3 = new Rachunek(o1, 100);
- Rachunek* r2 = new Rachunek(o1, 100);
- cout<<"Rachunek 1"<<endl<<endl;
- bank->otworzNowyRachunek(r1);
- cout<<"Rachunek 2"<<endl<<endl;
- bank->otworzNowyRachunek(r2);
- cout<<"Rachunek 3"<<endl<<endl;
- bank->otworzNowyRachunek(r3);
- cout<<"Po zmianie"<<endl<<endl;
- bank->zmienWlasciciela(2, o2);
- bank->show();
- cout<<"Po usunieciu"<<endl<<endl;
- bank->usunRachunek(3);
- bank->show();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement