alfredo.liardo (Normal User)
Newbie
Messaggi: 2
Iscritto: 17/12/2014
|
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++ |
MiaClasse* obj = new MiaClasse();
MiaClasse * obj2 = new MiaClasse();
bool flag = *obj != *obj2;
|
Come faccio ad utilizzare le istanze senza anteporre l'asterisco?
|
|
Dario DF (Member)
Newbie
Messaggi: 19
Iscritto: 19/06/2013
|
Salvo l'abbreviazione per accedere ai membri:
Codice sorgente - presumibilmente Plain Text |
obj1->funzione();
obj1->variabile = 10;
|
al posto di:
Codice sorgente - presumibilmente Plain Text |
(*obj1).funzione();
(*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) |
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Devi necessariamente instanziarlo dinamicamente?
Comunque per i curiosi, in C++11 si potrebbe fare una cosa del genere
Codice sorgente - presumibilmente Plain Text |
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.
|
|