Problem z odwołaniem się do zminnej w klasie

0

Oto jest moja klasa:

class Plik
{
private:
    string  m_strNazwa;

public:
    Plik(const char* nazwa);

    string   GetName() { return m_strNazwa; }
};

Plik::Plik(const char* nazwa)
{
    m_strNazwa = (string)nazwa;
}

I teraz jak odwołuję z jakieś innej funkcji w klasie do zmiennej m_strNazwa pojawia się taki błąd:

error C2597: illegal reference to non-static member 'Plik::m_strNazwa'
0

Nie ma czegoś takiego jak zmienna w klasie (chyba że statyczna). Ty masz zmienną/pole w OBIEKCIE danej klasy. Żeby się odwołać do tego pola musisz mieć OBIEKT takiej klasy.

  1. Z błędu wynika ze próbujesz mimo wszystko odwołać się do tego jak do klasy. Możliwe ze nie umiesz napisać metody w takim razie...
  2. Za takie coś
    m_strNazwa = (string)nazwa;

    powinieneś dostać biczowanie. Co to niby znaczy? Czemu rzutujesz wskaźnik pokazujący na char na stringa? o_O Może chciałeś tam stworzyc stringa na podstawie tego char*?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0