Arduino Polska Forum

Pełna wersja: Problem z dziedziczeniem
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hej.
Próbuję zrobić obiektowo takie menu z przyciskami z wykorzystaniem biblioteki Adafruit_GFX.
Chce stworzyć klasę Pushbutton, która posłuży do tworzenia przycisków na ekranie wyswietlacza.
Ćwiczę na wyświetlaczu Nokia 5110 i też używam biiblioteki Adafruit_PCD8544.

Napisałem prosty kod definiujacy klasę, ale gdy tworzę obiekt to kompilator wywala mi błąd:
"cannot declare variable 'timebase' to be of abstract type 'Pushbutton"
Problem dotyczy linii:
Pushbutton timebase(" ");
Jak usunę linie deklarujące obiekty klasy Pushbutton, to kompilacja przechodzi bez błądów.
Pewnie jeszcze nie wszystko rozumiem z tymi klasami konstruktorami i obiektami, przeciążaniem i stąd kłopot, ale może dobra doświadczona dusza z tego forum mi pomoże to skapować.
Poniżej Kod:
Kod:
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

using namespace std;
class Pushbutton : public Adafruit_GFX
{

   boolean Active = false;
   boolean Visible = true;
   String Label = "";
   byte Width = 30;
   byte PositionV = 0;
   byte PositionH = 0;
   byte TextSize = 1;
 public:
   //Constructor
       Pushbutton::Pushbutton(String Lab = "", byte Widt = 30, byte PositV = 0, byte PositH = 0, byte TextS = 1, boolean Activ = false, boolean Visibl = true):Adafruit_GFX(LCDWIDTH, LCDHEIGHT)
   {
     
           Active = Activ;
           Visible = Visibl;
           Width = Widt;
           Label = Lab;
           PositionV = PositV;
           PositionH = PositH;
           TextSize = TextS;
     
   }

   //End of Constructors

   void Pushbutton::displayButton()
   {
     if (Active)
       Adafruit_GFX::setTextColor(WHITE, BLACK);
     else
       Adafruit_GFX::setTextColor(WHITE, BLACK);
     if (Visible)
     {
       Adafruit_GFX::setCursor(PositionH, PositionV);
       Adafruit_GFX::print(Label);
     }
   }
}; //End of Class Button

Pushbutton timebase("     ");
Pushbutton triggermode(" ", 6, 41, 34);


void setup() {
 // put your setup code here, to run once:

}

void loop() {
 // put your main code here, to run repeatedly:

}