Sunteți pe pagina 1din 2

#include<iostream>

using namespace std;


class Carte
{
char *titlu;
char *autor;
const int isbn;
int nrVolume;
int *anAparitie;
char **numeVol;
char tip;
static int nrFictiune;
static int nrNonfictiune;
public:
Carte():isbn(13567)
{
titlu=new char[strlen("Morometii")+1];
strcpy(titlu,"Morometii");
autor=new char[strlen("Marin Preda")+1];
strcpy(autor,"Marin Preda");
nrVolume=2;
anAparitie=new int[nrVolume];
anAparitie[0]=1955;
anAparitie[1]=1967;
numeVol=new char*[nrVolume];
strcpy(numeVol[0],"Morometii 1");
strcpy(numeVol[1],"Morometii 2");
tip='F';
nrFictiune++;
}
Carte(char *t, char *a, int nr, int *an, char **n, char tp, int is):isbn
(is)
{
titlu=new char[strlen(t)+1];
strcpy(titlu, t);
autor=new char[strlen(a)+1];
strcpy(autor,a);
nrVolume=nr;
anAparitie=new int[nrVolume];
for(int i=0;i<nrVolume;i++)
anAparitie[i]=an[i];
numeVol=new char*[nrVolume];
for(int i=0;i<nrVolume;i++)
{
numeVol[i]=new char[strlen(n[i])+1];
strcpy(numeVol[i],n[i]);
}
tip=tp;
if(tip=='F')
nrFictiune++;
else
nrNonfictiune++;
}
~Carte()
{
delete[]titlu;

delete[]autor;
delete[]anAparitie;
for(int i=0;i<nrVolume;i++)
delete[]numeVol[i];
delete[]numeVol;
if(tip='F')
nrFictiune--;
else
nrNonfictiune--;
}
void afisare()
{
cout<<"Romanul "<<titlu<<" scris de "<<autor<<" cu ISBN "<<isbn<
<" de tip "<<tip<<" are "<<nrVolume<<endl;
for(int i=0;i<nrVolume;i++)
{cout<<"Volumul "<<i+1<<" a aparut in anul "<<anAparitie
[i]<<" si se numeste "<<numeVol[i]<<endl;
}
}
};
int Carte::nrFictiune=0;
int Carte::nrNonfictiune=0;
void main()
{
Carte c1;
c1.afisare();
int va[4]={1881,1881,1882,1892};
char* vn[4]={"Partea 1","Partea 2","Partea 3","Partea 4"};
Carte c2("Amintiri din copilarie","Ion Creanga",4,va,vn,'F',324);
c2.afisare();
}

S-ar putea să vă placă și