Ho una classe con un membro statico che è un puntatore in questo modo:inizializzazione di un puntatore statica in C++
animation.h
class Animation
{
public:
Animation();
static QString *m;
};
animation.cpp
#include "animation.h"
QString* Animation::m = 0;
Animation::Animation()
{
}
Quando provo per inizializzare quel puntatore "m" di un'altra classe in questo modo:
Animation::m = new QString("testing");
Funziona.
Ma quando lo faccio in questo modo:
QString x("Testing");
Animation::m = &x;
il programma si blocca.
Cosa c'è di sbagliato in questo secondo metodo?
Anche io vorrei avere quel puntatore statico come privato in modo da poter fare funzioni getter e setter statiche ad esso. Il setter dovrebbe usare il secondo metodo poiché la 'x' arriverà in un parametro quindi sono bloccato.
Grazie per qualsiasi aiuto!
Che sicuramente risponde grazie! –
'* (Animation :: m) = x;' deferenze un puntatore '0'. Il puntatore non è mai stato assegnato è stato inizializzato su' 0'. –
@Per mancare quello, corretto. Grazie. –