que tienen una clase con un miembro estático que es un puntero de este modo:La inicialización de un puntero estática en C++
animation.h
class Animation
{
public:
Animation();
static QString *m;
};
animation.cpp
#include "animation.h"
QString* Animation::m = 0;
Animation::Animation()
{
}
Cuando intento para inicializar ese puntero 'm' de otra clase como ese:
Animation::m = new QString("testing");
Funciona.
Pero cuando lo hago de esta manera:
QString x("Testing");
Animation::m = &x;
El programa falla.
¿Qué hay de malo con este segundo método?
También me gustaría tener ese puntero estático como privado, así que puedo hacer funciones fijas de captador y definidor. El colocador debe usar el segundo método ya que la 'x' vendrá en un parámetro, así que estoy atascado.
¡Gracias por cualquier ayuda!
¡Eso definitivamente lo responde gracias! –
'* (Animation :: m) = x;' deferences un puntero '0'. El puntero nunca fue asignado, se acaba de inicializar a' 0'. –
@Als se perdió, se corrigió. Gracias. –