Skocz do zawartości

Platformio: class, private i public w Arduino


gielo

Pomocna odpowiedź

Mam taki problem pisząc z wykorzystaniem biblioteki arduino i platformio (pod Atom). Jeśli deklaruję zmienne i prototypy funkcji jako prywatne to przy kompilacji wywala błąd, że próbuję użyć zmiennej, czy funkcji jako prywatna. Działają one tylko jako Public:

Oczywiście deklaracje i wywołania odbywają się w obrębie tej samej klasy, wie ktoś o co może chodzić?

Robię to standardowo w stylu C++ czyli

w pliku nazwa.hpp piszę

class NazwaKlasy {

private:

void nazwaFunkcji(); //prototyp funkcji

};

w pliku nazwa.cpp piszę

void nazwaKlasy::nazwaFunkcji() { //wywołanie funkcji

tutaj ciało funkcji

}

 

Edytowano przez gielo
Link do komentarza
Share on other sites

Rozumiem, że w pliku nazwa.cpp masz zawarte #include nazwa.hpp? U mnie z VSCode działa...

test.h
 

#include <stdio.h>

class NazwaKlasy {
    private:
        void funkcja();
};

test.cpp

#include <test.h>

void NazwaKlasy::funkcja() {
    printf("test");
}

 

Edytowano przez matimoto87
Link do komentarza
Share on other sites

Dnia 25.05.2019 o 13:19, gielo napisał:

wywala błąd, że próbuję użyć zmiennej, czy funkcji jako prywatna

a w jaki sposób jej "używasz" w innym miejscu? Czy chodzi tylko o to, że nie możesz jej zadeklarować i zdefiniować? U mnie definiuje się bez problemu.

Link do komentarza
Share on other sites

Jeśli problemem nie jest plik nazwa.cpp i próbujesz użyć tej funkcji np. w Twoim głównym programie to tak - po to ta funkcja jest prywatna, byś nie miał do niej bezpośredniego dostępu. Musisz zrobić inną, publiczną funkcję, która będzie rozmawiać z tą prywatną. 

Edytowano przez matimoto87
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.