Salve, ho un problema.
VOlevo sapere se in c++ esiste una funzione che prende per parametro un puntatore ad un oggetto, e restituisce true o false, rispettivamente se l'oggetto è stato istanziato oppure no.
Grazie
Salve, ho un problema.
VOlevo sapere se in c++ esiste una funzione che prende per parametro un puntatore ad un oggetto, e restituisce true o false, rispettivamente se l'oggetto è stato istanziato oppure no.
Grazie
Spero di non dire una "cassanata"..
Cmq in c++ un puntatore viene automaticamente istanziato a null.
Quindi se p è un puntatore ad un oggetto:
if(p) {};
° Viene eseguito il corpo dell'if se il puntatore è diverso da null, cioè se effettivamente contiene un indirizzo di memoria..
° in caso contrario, ovvero se p punta ancora a null, non si fa niente.
La funzione potrebbe essere implementata così:
bool nome_funzione ( nome_oggetto* p) {
if(p) cout << "Oggetto istanziato..\n\n";
else cout << "Oggetto non presente in memoria..\n\n":
}
Solo una cosa non ho compreso..come fai a prendere per parametro un puntatore ad un oggetto non istanziato??Non dovrebbe segnarti un errore al tempo di compilazione??
Infatti quello che ti ho proposto rispecchiano grossomodo le verifiche che si fanno in una generica Lista per verificare se è vuota, ma non ho mai avuto modo di verificare l'esistenza o meno della lista!!proprio non riesco a immaginare un problema simile..
Spero di esserti stato di aiuto!!!
Ciao!![]()
Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)
No. Lo devi istanziare esplicitamente a null.Originariamente inviato da Angioletto
Spero di non dire una "cassanata"..
Cmq in c++ un puntatore viene automaticamente istanziato a null.
Riguardo al controllo con if, va benone.
MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
.:[ It resumes the development !! ]:.
Meno male!!Ogni tanto faccio cose buone!!
Ora, sperando di non andare un pò OT, ho rivisto un attimino i puntatori.
Se definiti come variabili globali (e quindi se allocati in area dati), vengono automaticamente inizializzati a null: ho provato e stampando il loro valore ottengo sempre 0x0..
Altrimenti il loro valore è imprecisato..
Cmq è bene fare come dici tu: inizializzarli sempre così da non avere problemi!!!
Ciao!!
![]()
Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)