marcella70
08-08-2016, 15:59
ciao,
con c++ sono agli inizi.
che differenza c'č tra le 2 classi che seguono dal punto di vista dell'allocazione?
class A{
public:
std::string x;
};
class B{
public:
std::string* x;
};
A* a = new A();
B* b = new B();
Il fatto che a->x non č dichiarato come puntatore significa che non verrā allocato nello heap, sebbene A stia nello heap? Oppure il fatto che 'a' č allocato nello heap determina che tutti i suoi membri saranno allocati nello heap automaticamente?
Inoltre. Se invece di due classi uso 2 strutture, valgono le stesso considerazioni?
grazie
con c++ sono agli inizi.
che differenza c'č tra le 2 classi che seguono dal punto di vista dell'allocazione?
class A{
public:
std::string x;
};
class B{
public:
std::string* x;
};
A* a = new A();
B* b = new B();
Il fatto che a->x non č dichiarato come puntatore significa che non verrā allocato nello heap, sebbene A stia nello heap? Oppure il fatto che 'a' č allocato nello heap determina che tutti i suoi membri saranno allocati nello heap automaticamente?
Inoltre. Se invece di due classi uso 2 strutture, valgono le stesso considerazioni?
grazie