2012-10-30 165 views
1

我正在嘗試創建一個新的類,它將繼承SoftwareSerial類(如下面的代碼段所示)。當我宣佈新課程爲class SerialGSM : public Stream時,它將進行編譯。但是,使用class SerialGSM : public SoftwareSerial時,它失敗的消息Arduino SoftwareSerial類的C++繼承

預期的類名前 '{' 令牌

以下是相關的代碼段:

#ifndef _SerialGSM_H 
#define _SerialGSM_H 
#include "Arduino.h" 
#include <SoftwareSerial.h> 
class SerialGSM : public SoftwareSerial { 
public: 
    SerialGSM(int RXPin,int TXPin); 
protected: 
    float payRate; 
}; 
#endif /* not defined _SerialGSM_H */ 
+0

這表明SoftwareSerial的定義是不是已包含在該文件中的頭文件 – mathematician1975

+0

'預計的班級 - '{:'標識符'SoftwareSerieal'不被識別爲類型的類型。向前聲明它來代替'#include '。編譯器錯誤是否持續? – damienh

回答

0

解決。

新增

#include <SoftwareSerial.h> 
對PDE

爲好。

#include <SerialGSM.h> 
#include <SoftwareSerial.h> 
SerialGSM cell(2,3); 
void setup(){ 
cell.begin(9600); 
} 
-1

修改

SerialGSM(int RXPin,int TXPin); 

SerialGSM(int RXPin,int TXPin):SoftwareSerial(RXPin, TXPin); 

結果

#ifndef _SerialGSM_H 
#define _SerialGSM_H 
#include "Arduino.h" 
#include <SoftwareSerial.h> 
class SerialGSM : public SoftwareSerial { 
public: 
SerialGSM(int RXPin,int TXPin):SoftwareSerial(RXPin, TXPin); 
protected: 
float payRate; 
}; 
#endif /* not defined _SerialGSM_H */