Hi there, I am struggling to understand where I am going wrong with creating some derived classes. I am trying to create a couple of derived classes that also derive form the Adafruit_ST7735 library and the Encoder library, however I keep getting the same error and can't figure out where I am going wrong. I am writing the classes in the ino file for the time being for simplicity. Any advice would be greatly appreciated
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <Encoder.h>
const int8_t TFT_CS = 53, TFT_RST = 8, TFT_DC = 9;
#define PinA 2
#define PinB 3
class MyLCD : public Adafruit_ST7735{
protected:
Adafruit_ST7735 tft;
//some other variables
public:
MyLCD(int8_t tft_CS, int8_t tft_DC, int8_t tft_RST) : Adafruit_ST7735(tft_CS, tft_DC, tft_RST){
//some other assignments
}
//some other members
};
class MyRotaryEncoder : public MyLCD, public Encoder{
private:
Encoder encoder;
//some other variables
public:
//Public variables
// Constructor
MyRotaryEncoder(int8_t pinA, int8_t pinB, int8_t tft_CS, int8_t tft_DC, int8_t tft_RST) : MyLCD(tft_CS, tft_DC, tft_RST), Encoder(pinA, pinB){
//some other assignments
}
//some other members
};
This is the error I get
/Users/olly/Documents/Arduino/TFT3/TFT3.ino: In constructor 'MyLCD::MyLCD(int8_t, int8_t, int8_t)':
/Users/olly/Documents/Arduino/TFT3/TFT3.ino:58:97: error: no matching function for call to 'Adafruit_ST7735::Adafruit_ST7735()'
MyLCD(int8_t tft_CS, int8_t tft_DC, int8_t tft_RST) : Adafruit_ST7735(tft_CS, tft_DC, tft_RST){
^
In file included from /Users/olly/Documents/Arduino/TFT3/TFT3.ino:3:0:
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:57:3: note: candidate: Adafruit_ST7735::Adafruit_ST7735(SPIClass*, int8_t, int8_t, int8_t)
Adafruit_ST7735(SPIClass *spiClass, int8_t cs, int8_t dc, int8_t rst);
^~~~~~~~~~~~~~~
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:57:3: note: candidate expects 4 arguments, 0 provided
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:55:3: note: candidate: Adafruit_ST7735::Adafruit_ST7735(int8_t, int8_t, int8_t)
Adafruit_ST7735(int8_t cs, int8_t dc, int8_t rst);
^~~~~~~~~~~~~~~
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:55:3: note: candidate expects 3 arguments, 0 provided
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:54:3: note: candidate: Adafruit_ST7735::Adafruit_ST7735(int8_t, int8_t, int8_t, int8_t, int8_t)
Adafruit_ST7735(int8_t cs, int8_t dc, int8_t mosi, int8_t sclk, int8_t rst);
^~~~~~~~~~~~~~~
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:54:3: note: candidate expects 5 arguments, 0 provided
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:52:7: note: candidate: constexpr Adafruit_ST7735::Adafruit_ST7735(const Adafruit_ST7735&)
class Adafruit_ST7735 : public Adafruit_ST77xx {
^~~~~~~~~~~~~~~
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:52:7: note: candidate expects 1 argument, 0 provided
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:52:7: note: candidate: constexpr Adafruit_ST7735::Adafruit_ST7735(Adafruit_ST7735&&)
/Users/olly/Documents/Arduino/libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7735.h:52:7: note: candidate expects 1 argument, 0 provided
/Users/olly/Documents/Arduino/TFT3/TFT3.ino: In constructor 'MyRotaryEncoder::MyRotaryEncoder(int8_t, int8_t, int8_t, int8_t, int8_t)':
/Users/olly/Documents/Arduino/TFT3/TFT3.ino:134:145: error: no matching function for call to 'Encoder::Encoder()'
MyRotaryEncoder(int8_t pinA, int8_t pinB, int8_t tft_CS, int8_t tft_DC, int8_t tft_RST) : MyLCD(tft_CS, tft_DC, tft_RST), Encoder(pinA, pinB){
^
In file included from /Users/olly/Documents/Arduino/TFT3/TFT3.ino:4:0:
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:79:2: note: candidate: Encoder::Encoder(uint8_t, uint8_t)
Encoder(uint8_t pin1, uint8_t pin2) {
^~~~~~~
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:79:2: note: candidate expects 2 arguments, 0 provided
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:76:7: note: candidate: constexpr Encoder::Encoder(const Encoder&)
class Encoder
^~~~~~~
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:76:7: note: candidate expects 1 argument, 0 provided
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:76:7: note: candidate: constexpr Encoder::Encoder(Encoder&&)
/Users/olly/Documents/Arduino/libraries/Encoder/Encoder.h:76:7: note: candidate expects 1 argument, 0 provided