首页 > 解决方案 > 我想继承 SPIFFS 类来为我的方法扩展它。可能吗?

问题描述

我有使用 Arduino 框架的 ESP32 项目,但我有问题。我想创建我的类,它将继承自 SPIFFS 类。只想添加 readConfig 方法并在我的项目中使用它。

可能吗?

我正在使用类似的东西。SSDReader.h

#pragma once
#include <Arduino.h>
#include <SPIFFS.h>
#include <FS.h>

using namespace fs;
class SSDReader: public SPIFFSFS {
  public:
    void getConfig();

};

extern SSDReader ssd;

SSDReader.cpp

#include "SSDReader.h"

void SSDReader::getConfig() {

}

主文件

#pragma once
#include <Arduino.h>
#include "include/SSDReader.h“

void setup() {
  // Init SSDReader
  if (!ssd.begin()) {

  }
}

void loop() {

}

它可以编译,但 ssd 是:

.pioenvs/esp32dev/src/main.cpp.o:(.literal._Z5setupv+0x10): undefined reference to `ssd'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp32dev/firmware.elf] Error 1

谢谢, 问候, Petr Sourek

标签: c++arduinoesp32

解决方案


感谢 KIIV,我能够像这样编辑我的代码。

SSDReader.h

#pragma once
#include <Arduino.h>
#include <SPIFFS.h>

using namespace fs;
class SSDReader : public SPIFFSFS {
  public:
    SSDReader() : SPIFFSFS{ SPIFFS } { };
    void getConfig();

  protected:
};

SSDReader.cpp

#include "SSDReader.h"

//SSDReader::SSDReader() {}


void SSDReader::getConfig() {

}

主文件

#include <Arduino.h>
#include "include/SSDReader.h"
//#include "include/Display.h"

// Variables
SSDReader ssd;
bool enableSerial = false;

//Display display;

void setup() {
  if (enableSerial)
    Serial.println(9600);

  // Init SSDReader
  if (!ssd.begin()) {

  }

}

void loop() {

}

它有效。非常感谢。我要更多地自学。


推荐阅读