Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Allocazione dinamica di oggetti
Forum - C/C++ - Allocazione dinamica di oggetti

Avatar
alfredo.liardo (Normal User)
Newbie


Messaggi: 2
Iscritto: 17/12/2014

Segnala al moderatore
Postato alle 16:38
Martedì, 27/01/2015
Salve
Volevo sapere se c'era un modo per evitare di usare * per accedere ad un oggeto istanziato dinamicamente con la new
Per esempio
Codice sorgente - presumibilmente C/C++

  1. MiaClasse* obj = new MiaClasse();
  2. MiaClasse * obj2 = new MiaClasse();
  3. bool flag = *obj != *obj2;


Come faccio ad utilizzare le istanze senza anteporre l'asterisco?

PM Quote
Avatar
Dario DF (Member)
Newbie


Messaggi: 19
Iscritto: 19/06/2013

Segnala al moderatore
Postato alle 21:22
Sabato, 14/02/2015
Salvo l'abbreviazione per accedere ai membri:

Codice sorgente - presumibilmente Plain Text

  1. obj1->funzione();
  2. obj1->variabile = 10;



al posto di:

Codice sorgente - presumibilmente Plain Text

  1. (*obj1).funzione();
  2. (*obj1).variabile = 10;



non mi pare che ci siano soluzioni, salvo il caso che questo valore non venga passato ad una funzione, a quel punto se il tipo del parametro è MiaClasse& allora all'interno è usata come una variabile (e non può essere passato null alla funzione)

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 22:56
Sabato, 14/02/2015
Devi necessariamente instanziarlo dinamicamente?
Comunque per i curiosi, in C++11 si potrebbe fare una cosa del genere
Codice sorgente - presumibilmente Plain Text

  1. MiaClasse& obj = *std::auto_ptr<MiaClasse>(new MiaClasse());


Così obj avrebbe la stessa semantica di un oggetto costruito sullo stack, sempre che quella roba compili.

PM Quote