Chciałbym prosić o wyjaśnienie - bo szczerze mówiąc nie rozumiem.
Chciałbym zaznaczyć, że do tej pory myślałem, że dowolna zmienna prywatna znajdująca się w klasie gdy choć JEDEN raz zostanie zainicjalizowana przez składową funkcję tej klasy, to będzie trzymać tą wartość dopóki nie zostanie drugi raz zainicjalizowana inną wartością przez tą samą lub inną funkcję składową tejże klasy.
Chciałbym rozpatrzyć jeden problem z którym spotykam się obecnie i nie rozumiem czemu tak się dzieje, chciałbym aby rzeczywiście i rozumnie ktoś z was mi to wyjaśnił
jest sobie prosta klasa:
class Klasa1
{
public:
void CreateSettings(QJsonObject &object);
void Settings();
private:
QJsonObject *createSettings;
};
potem mam dwie funkcje tej klasy
void Klasa1::CreateSettings(QJsonObject &object)
{
//w tej funkcji mogę działać na tym wskaźniku, obiekt poprawnie odebrał adres i mogę wykonać jakieś działania na obiekcie
this->createSettings = &object;
this->createSettings->value("key", "anyValue").toString();
}
oraz druga funkcja
void Klasa1::Settings()
{
//w tej funkcji chcę wykorzystać wskaźnik który wyżej został zainicjalizowany adresem który otrzymała powyższa funkcja
//ale niestety ku mojemu zdziwieniu ten wskaźnik jest pusty - nie ma adresu obiektu który odebrałem w funkcji powyżej - DLACZEGO ?
this->createSettings->value("key", "anyValue").toString();
}
Naprawdę proszę o wyjaśnienie.