Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Definicja i deklaracja zmiennych statycznych klasy.

janusz.master 28 Gru 2008 18:51 606 0
  • #1 28 Gru 2008 18:51
    janusz.master
    Poziom 8  

    Mam problem z definicją właściwości klasy. Przy definiowaniu zmiennych w pliku .c wywala:
    "cannot convert 's_LcdTask*' to 's_LcdTask cLcdLocalRtl::*' in initialization"

    Oto moje pliki:

    lcd_local_rtl.class.h

    Code:


    typedef struct s_LcdTask
    {
       uchar Code;
       uchar IsData;
    };

    #include "lcd_local.class.h"

    #define LcdBuforSize 30

    class cLcdLocalRtl : public cLcdLocalNormal
    {
      protected:
        static uchar LcdWiersz;         //nr wiersza (polozenie lcd)
       static uchar LcdKolumna;        //nr kolumny (polozenie lcd)

       static s_LcdTask *p_buforReadPos; // O TE ZMIENNE CHODZI
       static s_LcdTask *p_buforWritePos; // O TE ZMIENNE CHODZI
       
      public:
         static s_LcdTask bufor[LcdBuforSize];

    (...) inne funkcje (...)
    };

    #endif
    #endif


    Oraz plik lcd_local_rtl.class.c
    Code:


    #include "lcd_local_rtl.class.h"

    s_LcdTask cLcdLocalRtl :: *p_buforReadPos = cLcdLocalRtl :: bufor;  // TUTAJ WYWALA BŁĄD
    s_LcdTask cLcdLocalRtl ::  *p_buforWritePos = cLcdLocalRtl :: bufor; // TUTAJ WYWALA BŁĄD
    (...)


    Jeśli natomiast "cLcdLocalRtl :: bufor" zamieniam na samo "bufor" (bo wydawało mi się że przy definicji zmiennych klasy widzę wszystko tak jak bym był w funkcji klasy) - kompilator nie widzi żadnej zmiennej bufor.

    Gdzie zatem mogę inicjalizować zmienne statyczne klasy?

    Chyba już sobie poradziłem - znak '*' powinienem wpisać przed nazwą klasy a nie dopiero przed nazwą zmiennej.

    0 0