After some hints from you folks I finally found the problems.
- First: I always tried to save the
char*
s directly (you see this in the constructor) and by that only achieved that I had pointers to my strings.
Solution:
Kunde::Kunde(char* n, char* o, int a)
{
int lenname=(int)strlen(n)+1;
name=new char[lenname];
memcpy(name, n, lenname);
int lenort=(int)strlen(o)+1;
ort=new char[lenort];
memcpy(ort, o, lenort);
alter=new int;
*alter=a;
id=anzahl++;
umsatz=0;
transaktion=0;
}
- Second: I tried to use an
int*
as a parameter for the constructor which a) makes no sense and b) is a royal PITA. After I fixed my parameters I used the construct proposed by @Matthias247 to do the copying of the int-data.
Solution:
Kunde::Kunde(const Kunde &k)
{
int lenname=(int)strlen(k.name)+1;
name=new char[lenname];
memcpy(name, k.name, lenname);
int lenort=(int)strlen(k.ort)+1;
ort=new char[lenort];
memcpy(ort, k.ort, lenort);
alter=new int;
*alter = *(k.alter);
id=k.id;
anzahl++;
umsatz=k.umsatz;
transaktion=k.transaktion;
}