我正在创建一个由另外两个类组成的新类。我在构造函数中使用初始化列表。当我调用这个类的构造函数时,我得到以下消息:
InfraRedReceiverVs1838b.cpp:9:对`IRrecv :: IRrecv(int)'的未定义引用
第9行是初始化IRrecv类的行。
我班级的头文件
#include "Arduino.h"
#include "InfraRedReceiverVs1838b.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//Constructor
VS1838B::VS1838B(int pinoReceptorIR)
:_receptorIR (pinoReceptorIR), _bufferSinalRecebido()
{
_pinoInput = pinoReceptorIR;
}
我班级的源文件
#ifndef INFRAREDRECEIVERVS1838B_H
#define INFRAREDRECEIVERVS1838B_H
#include "Arduino.h"
#include "IRremote.h"
#include "IRremoteInt.h"
class VS1838B{
public:
//Constructor
VS1838B(int pinoReceptorIR);
//Atributes
IRrecv _receptorIR;
decode_results _bufferSinalRecebido;
int _pinoInput;
};
#endif /* INFRAREDRECEIVERVS1838B_H */
保留IRrecv类的IRremote.h文件
// main class for receiving IR
class IRrecv
{
public:
IRrecv(int recvpin);
void blink13(int blinkflag);
int decode(decode_results *results);
void enableIRIn();
void resume();
private:
// These are called by decode
int getRClevel(decode_results *results, int *offset, int *used, int t1);
long decodeNEC(decode_results *results);
long decodeSony(decode_results *results);
long decodeSanyo(decode_results *results);
long decodeMitsubishi(decode_results *results);
long decodeRC5(decode_results *results);
long decodeRC6(decode_results *results);
long decodePanasonic(decode_results *results);
long decodeLG(decode_results *results);
long decodeJVC(decode_results *results);
long decodeSAMSUNG(decode_results *results);
long decodeHash(decode_results *results);
int compare(unsigned int oldval, unsigned int newval);
}
;
保留IRrecv类的IRremote.cpp文件
#include "IRremote.h"
#include "IRremoteInt.h"
// Provides ISR
#include <avr/interrupt.h>
IRrecv::IRrecv(int recvpin)
{
irparams.recvpin = recvpin;
irparams.blinkflag = 0;
}
我很确定这不是一个包含问题。我的初始化列表有问题吗?提前致谢。