#include <iostream>
using namespace std;
class osoba
{
char *ime;
public:
osoba()
{
ime = NULL;
}
osoba(char *i)
{
ime = new char[strlen(i)+1];
strcpy(ime,i);
}
~osoba()
{ cout<<" Brisem: "<<ime<<endl;
delete []ime;
ime = NULL;
system("pause"); // kako bih vidio kada se poziva destruktor
}
void setIme(char *i);
void predstaviSe();
};
void osoba::setIme(char *i)
{
delete []ime;
ime = NULL;
ime = new char[strlen(i)+1];
strcpy(ime,i);
}
void osoba::predstaviSe()
{
cout<<"\n Ime: "<<ime<<" duzine: "<<strlen(ime)<<" size of("<<sizeof(ime)<<") "<<endl;
}
void promjena(osoba p)
{
p.setIme("Security");
}
int main()
{
osoba ja("Elite ");
ja.predstaviSe();
promjena(ja);
ja.predstaviSe();
cout<<"\n::::::: KRAJ ::::::"<<endl;
system("pause>0"); return 0;}
Zašto se u funkciji promjena mora proslijediti objekat klase osoba kao referentni da bude "pravilnih" izmjena na objektu klase?
Objekat koji prosljeđujemo je kopija, ali njegovi atributi su u dinamičkom dijelu memoriju, pa zašto se ovo dešava, ne razumijem???