Initialisierung habe ich eine Klasse mit einem statischen Element, das einen Zeiger wie so ist:einen statischen Zeiger in C++
animation.h
class Animation
{
public:
Animation();
static QString *m;
};
animation.cpp
#include "animation.h"
QString* Animation::m = 0;
Animation::Animation()
{
}
Wenn ich versuche, um diesen "m" -Zeiger von einer anderen Klasse wie diesem zu initialisieren:
Animation::m = new QString("testing");
Es funktioniert.
Aber wenn ich es so:
QString x("Testing");
Animation::m = &x;
Das Programm stürzt ab.
Was ist falsch an dieser zweiten Methode?
Auch ich möchte diesen statischen Zeiger als privat haben, damit ich statische Getter- und Setter-Funktionen machen kann. Der Setzer sollte die zweite Methode verwenden, da das 'x' in einem Parameter kommt, so dass ich feststecke.
Danke für jede Hilfe!
Das definitiv beantwortet es danke! –
'* (Animation :: m) = x;' verfälscht einen '0' Zeiger.Der Zeiger wurde nie zugewiesen, er wurde nur auf' 0' initialisiert. –
@Als verpasst, korrigiert. Vielen Dank. –