Riferimenti in C++ sono un costrutto conveneint che ci permettono di semplificare il seguente codice C:shared_ptr e riferimenti in C++
f(object *p){
//do something
}
int main(){
object* p = (object*) calloc(sizeof(object));
f(p);
}
a
f(object& o){
//do something
}
int main(){
object o = object();
f(o);
}
puntatori in comune sono un altro vantaggio in C++ che semplifica la memoria gestione. Tuttavia, non sono sicuro di come passare un shared_ptr
a una funzione come f(object& o)
che accetta argomenti per riferimento?
f(object& o){
//do something
}
int main(){
shared_ptr<object> p (new object());
f(*p);
}
Il puntatore condiviso verrà incrementato quando il suo oggetto viene passato per riferimento a una funzione?
Invece di 'oggetto * p = (oggetto *) calloc (sizeof (oggetto));' si dovrebbe usare 'oggetto * p = nuovo oggetto();' così viene chiamato il costruttore! (Oppure puoi usare 'calloc' e posizionare -nuovo'.) – strager
Dovresti aspettare qualche ora per dare alle persone il tempo di trovare e rispondere alla tua domanda, o dovrai dare una risposta shuffle, e le persone non avranno una possibilità di migliorare le loro risposte attraverso commenti-feedback. Dopo aver pensato che la polvere si sia stabilizzata, seleziona la risposta più utile. – GManNickG
Lo avrà in mente in futuro. Grazie! – dzhelil