Mam pytanie czy mógłby ktoś jakoś pomóc lub wytłumaczyć. Muszę zamienić wszystkie ciągi znaków np:char zmienna[20] na klasę string. Oraz dodać klasę dotycząca daty przydatności i wyklepałem coś prowizorycznie:

class Data {
unsigned char d,m; //dzien, miesiac
short y; // rok
public:
Data(void);
Data(... dzien, ... msc, ... rok);
bool sprawdz(void); // czy wprowadzona data jest poprawna
set_dz(...);
...
unsigned char get_msc(void);
...
void wypisz(void);
};

Tutaj kodzik programu:

 #include <cstdlib>
#include <iostream>
using namespace std;
 
char *strcp(const char *s)
  {
   unsigned L=streln(s)+1;
   char *r=new char[L];
   memcpy(r,s,L);
   return r;
  }
 
class puszka
  {
   private:
   char *nazwa;
   char *producent;
   long int data;
   int pojemnosc;
   bool otwarta;
   public:
   puszka(char *nazwa,char *producent,long int data,int pojemnosc,bool otwarta)
     :nazwa(strcp(nazwa)),producent(strcp(producent)),data(data),pojemnosc(pojemnosc),otwarta(otwarta)
     {
     }
   ~puszka() { delete[] nazwa; delete[] producent; }
   void wyswwietl()const
     {
      cout<<"Nazwa piwa: "<<nazwa<<endl;
      cout<<"Producent: "<<porducent<<endl;
      cout<<"Data waznosci: "<<data<<endl;
     }   
  };
 
int main()
  {
   puszka p("Zywiec","GrupaZywiecSA",01012012,5,true);
   p.wyswietl();
   cin.sync();
   cin.get();
   return 0;
  }