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



Teraz jest 23 lis 2024, o 11:24


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 ]
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