Kitaplığım derlenemiyor çünkü "Dize bir ad vermiyor"

Bazı kodları arduino taslağından çıkarmak ve tekrar kullanılabilir hale getirmek için küçük bir kütüphane yazıyorum. Sorun, "String bir tür ismini vermediğinden" derlenmemesidir.

Bu benim kodum (azaltılmış):

myESP.h:

#ifndef MYESP_H
#define MYESP_H

#include "Arduino.h"

#include 

#include 
#include 
#include 
#include 
#include 
#include 

class myESP {
    private:
        const char* _ssid;
        const char* _password;
        const char* _host;
    public:
        myESP();
        myESP(char * ssid, char * pwd, char * host);
        String macToStr(const uint8_t* mac);
        String doGet(String data, String sensor, int duration);
};
#endif

myESP.cpp:

#include 

#include "Arduino.h"
#include "myESP.h"

myESP::myESP() {}

myESP::myESP(char * ssid, char * pwd, char * host) {
    _host = host;
    _password = pwd;
    _ssid = ssid;
}

myESP::String macToStr(const uint8_t* mac) {
}

myESP::String doGet(String data, String sensor, int duration) {

}

Derlemeyi denediğimde, şunları elde ederim:

/Users/lbedogni/Documents/Arduino/libraries/myESP/myESP.cpp:14:1:   error: 'class' sınıfındaki 'string', myESP :: String türünde bir isim vermiyor   macToStr (const uint8_t * mac) {

     

/Users/lbedogni/Documents/Arduino/libraries/myESP/myESP.cpp:22:1:   error: 'class' sınıfındaki 'string', myESP :: String türünde bir isim vermiyor   doGet (Dize verileri, Dize sensörü, int süre) {

İthalatın sırasını değiştirmeye çalıştım, kütüphaneleri değiştirdim ama yine de derleme yapmıyor.

Herhangi bir fikir?

2
#include - IDE, buna gerek duymamanız için String tipini otomatik olarak ekler.
katma yazar Nick Gammon, kaynak

1 cevap

MyESP.cpp'de sözdizimi yanlış. Bunu değiştir:

myESP::String macToStr(const uint8_t* mac) {
}

myESP::String doGet(String data, String sensor, int duration) {

}

buna:

String myESP::macToStr(const uint8_t* mac) {
}

String myESP::doGet(String data, String sensor, int duration) {

}

Dönüş tipi String ve işlev uygulaması myESP :: sınıf adı ile öneklenmelidir. Açıkçası, aynı zamanda, uygulamanın gövdesini de doldurmanız gerekir veya daha fazla hata alırsınız çünkü aslında hiçbir şey döndürmezsiniz.

2
katma