Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 23 maja 2025, o 19:14


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 23 lip 2015, o 20:29 
    Offline
    Nowy

    Dołączył(a): 30 cze 2015
    Posty: 13
    Pomógł: 1

    Zbudowałem klasę z metodami wirtualnymi. Klasa LCD - odpowiada za sterowanie wyświetlaczem LCD. Dziedziczy po niej klasa LCD_I2C - ta jest wcieleniem klasy LCD komunikującym się za pomocą ekspandera po I2C. Klasa LCD definiuje kilka metod wirtualnych (przeważnie z pustym ciałem), które nadpisane są w klasie LCD_I2C.

    Wszystko działa świetnie, tylko podczas kompilacji otrzymuję warningi:

    Class '[C@3f926c' has virtual method 'setBacklight' but non-virtual destructor LCD.h

    Destruktor właściwie nie jest mi potrzebny. Próbowałem nawet go definiować, ale wtedy rozbijam się o error mówiący o braku deklaracji delete(void*)

    Jak można pozbyć się tych warningów?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lis 2015, o 13:13 
    Offline
    Nowy

    Dołączył(a): 24 wrz 2015
    Posty: 14
    Lokalizacja: Oława
    Pomógł: 3

    mcmacpl napisał(a):
    Zbudowałem klasę z metodami wirtualnymi. Klasa LCD - odpowiada za sterowanie wyświetlaczem LCD. Dziedziczy po niej klasa LCD_I2C - ta jest wcieleniem klasy LCD komunikującym się za pomocą ekspandera po I2C. Klasa LCD definiuje kilka metod wirtualnych (przeważnie z pustym ciałem), które nadpisane są w klasie LCD_I2C.

    Wszystko działa świetnie, tylko podczas kompilacji otrzymuję warningi:

    Class '[C@3f926c' has virtual method 'setBacklight' but non-virtual destructor LCD.h

    Destruktor właściwie nie jest mi potrzebny. Próbowałem nawet go definiować, ale wtedy rozbijam się o error mówiący o braku deklaracji delete(void*)

    Jak można pozbyć się tych warningów?


    Trzeba dodać do klasy podstawowej wirtualny destruktor
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    ,a następnie przed definicją klasy LCD
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Wtedy kompilacja przechodzi bez problemów.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2019, o 16:45 
    Offline
    Nowy

    Dołączył(a): 31 gru 2012
    Posty: 6
    Pomógł: 0

    Mi się też nie kompilowała metoda wirtualna, a po dołączeniu wspomnianego "delete" kompilator zgłaszał błąd "recipe for target failed" bez umiejscowienia gdzie jest błąd. Dopiero dynamiczne utworzenie obiektu:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Spowodowało skompilowanie się bez błędu.

    Klasa wirtualna plik h:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    plik cpp:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    klasa pochodna plik h :
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    plik cpp:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO