Witam,
Program ma za zadanie przechowywac informacje o paczkach niestety mam problem z kopiowaniem obiektu do dynamicznej tablicy obiektów. Program kompiluje się ale po chwili się crashuje. Prawdopodobnie problem jest powiązany z 25 linijka pliku Poczta.cpp. Z góry dziękuje za wskazówki.
Plik main
#include <iostream>
#include "Paczka.h"
#include "Poczta.h"
using namespace std;
int main()
{
Paczka przesylka("warszawa");
przesylka.show();
Poczta warszawa;
warszawa.dodajpaczke(przesylka);
warszawa.pokaz();
return 0;
}
plik Paczka.h
#ifndef PACZKA_H_INCLUDED
#define PACZKA_H_INCLUDED
#include <string>
#include <iostream>
using namespace std;
class Paczka{
private:
string adres_;
public:
Paczka();
Paczka(string adres);
void show();
~Paczka();
};
#endif // PACZKA_H_INCLUDED
plik Paczka.cpp
#include <iostream>
#include "Paczka.h"
#include <string>
using namespace std;
Paczka::Paczka()
{
adres_="Adres domyslny";
}
Paczka::~Paczka()
{
}
Paczka::Paczka(string adres)
{
adres_=adres;
}
void Paczka::show()
{
cout<<adres_<<endl;
}
plik Poczta.h
#ifndef POCZTA_H_INCLUDED
#define POCZTA_H_INCLUDED
#include "Paczka.h"
class Poczta{
private:
int liczbapaczek;
int ilepaczekprzeniesc;
Paczka *paczki;
public:
Poczta();
~Poczta();
void dodajpaczke(Paczka &zastepcza);
void pokaz();
};
#endif // POCZTA_H_INCLUDED
plik Poczta.cpp
#include <iostream>
#include "Paczka.h"
#include "Poczta.h"
#include <string>
using namespace std;
Poczta::Poczta()
{
liczbapaczek=1;
paczki=new Paczka[liczbapaczek];
}
Poczta::~Poczta()
{
delete[] paczki;
}
void Poczta::dodajpaczke(Paczka &zastepcza)
{
int nowaliczbapaczek=liczbapaczek+1;
Paczka *paczki_tymczasowa;
paczki_tymczasowa=new Paczka[nowaliczbapaczek];
for(int i=0;i<liczbapaczek;i++)
paczki_tymczasowa[i]=paczki[i];
paczki_tymczasowa[nowaliczbapaczek]=zastepcza; <-- tutaj może być problem
delete[] paczki;
paczki=paczki_tymczasowa;
liczbapaczek=liczbapaczek+1;
}
void Poczta::pokaz()
{
cout<<endl;
for(int i=0;i<liczbapaczek;i++)
paczki[i].show();
}