Statico (per quanto riguarda la variabile membro statica) intrinsecamente significa, esiste sempre.
Se si crea un puntatore statico, non è possibile rilasciarlo in un punto che ha senso. Hai bisogno di più contesto.
Se si desidera che i dati condivisi esistano solo mentre sono presenti istanze di classe del proprietario membro statico, è necessario un contatore statico. Assegna un nuovo valore statico ogni volta che crei un'istanza e un contatore == 0. Alloca il valore statico corrente ogni volta che elimini l'ultima istanza della classe proprietario.
In caso contrario, sarà necessario immergersi in elementi come puntatori condivisi o intelligenti per deallocare, ma anche in questo caso si incontrano problemi. Se il puntatore intelligente non vede più riferimenti e deallocati, potrebbe farlo troppo presto. Se si trova nello stato deallocato, cosa significa quando hai di nuovo bisogno delle informazioni. Assegni un nuovo valore statico?
Se il membro statico deve sempre esistere se si dispone di un'istanza della classe del proprietario o meno, è consigliabile prendere in considerazione la modifica del puntatore in un riferimento o un'istanza.
fonte
2011-12-20 17:04:23
I puntatori intelligenti fanno bene a questo tipo di cose, almeno se si ha realmente bisogno dell'allocazione dinamica (vedere [risposta di sbi] (http://stackoverflow.com/a/8578256/10077). –
Ack .... statico pointer == evil –