没有匹配的函数错误C ++构造函数

伊丹

调用类VS1838B的构造函数时收到以下错误消息

error: no matching function for call to ‘IRrecv::IRrecv()’
VS1838B::VS1838B(int pinoReceptorIR){
                                    ^

这是VS1838B类标头的一部分:

#ifndef INFRAREDRECEIVERVS1838B_H
#define INFRAREDRECEIVERVS1838B_H

#include "Arduino.h"
#include "IRremote.h"
#include "IRremoteInt.h"

class VS1838B{

public:
    //Constructor
    VS1838B(int pinIR);

    //Atributes
    int _pinInput;
    IRrecv _receptorIR;                   
    decode_results _buffer;  

};

#endif  /* INFRAREDRECEIVERVS1838B_H */

这是同一类的cpp的一部分:

#include "Arduino.h"
#include "InfraRedReceiverVs1838b.h"
#include "IRremote.h"
#include "IRremoteInt.h"

VS1838B::VS1838B(int pinIR){

    _pinInput = pinIR;

    IRrecv receptorIR(_pinInput);         
    decode_results buffer;    

    _receptorIR = receptorIR;   
    _buffer = buffer;

}

注意:IRrecv和decode_results是自定义类型,它们的库已包含在内。

iAdjunct

由于您没有提供完整的代码示例,因此,我仍然可以告诉我发生了什么问题。

您的构造函数的定义是这样写的:

VS1838B::VS1838B(int pinIR)
{
    // stuff
}

不管是什么// stuff,编译器实际上都会插入代码...

VS1838B::VS1838B(int pinIR)
// <--- here
{
    // stuff
}

它在同一位置按顺序调用您的类中每个非POD类型的实例的default-constructor(您没有专门对其进行初始化)。

因为您没有初始化_receptorIR,它正在插入一个default-constructor调用,因此您的构造函数实际上如下所示:

VS1838B::VS1838B(int pinIR)
:   _receptorID () // ERROR: No default initializer!
,   _buffer () // assuming _buffer is non-POD
{
    // stuff
}

但是,_receptorID显然没有可访问的默认构造函数。

您应该这样做:

VS1838B::VS1838B(int pinIR)
:   _pinInput ( pinIR )
,   _receptorID ( pinIR )
,   _buffer ()
{
    // stuff
    // Note: you actually don't need to put ANYTHING you
    // wrote in your example here because the initializer-list
    // above did it all for you.
}

但是请认真地发布整个代码错误很明显是IRrecv的构造函数,您甚至没有发布它的原型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:没有构造函数的实例与参数列表匹配

来自分类Dev

意外错误“没有匹配的函数可调用”,期望构造函数没有参数

来自分类Dev

没有默认构造函数时,没有默认构造函数错误

来自分类Dev

封装的构造函数错误

来自分类Dev

C ++错误:没有匹配的构造函数用于初始化

来自分类Dev

没有出现函数错误

来自分类Dev

对指针列表进行排序C ++-没有匹配的函数错误

来自分类Dev

std :: thread ---没有匹配的构造函数

来自分类Dev

Angular2类的构造函数错误:没有Number的提供程序

来自分类Dev

C ++类副本构造函数没有匹配功能

来自分类Dev

C ++复制构造函数错误

来自分类Dev

C ++没有匹配的构造函数的[]初始化

来自分类Dev

“错误:没有匹配的函数可调用”构造函数错误

来自分类Dev

默认构造函数错误,没有用于调用的匹配函数

来自分类Dev

将一个类传递给另一类的构造函数时,C ++没有默认的构造函数错误

来自分类Dev

继承构造函数错误

来自分类Dev

地图支持上没有空的构造函数错误

来自分类Dev

我的子类构造函数中的构造函数错误

来自分类Dev

C ++错误没有构造函数的实例

来自分类Dev

C ++参数化的构造函数错误

来自分类Dev

C ++错误没有匹配的调用函数

来自分类Dev

封装的构造函数错误

来自分类Dev

AngularJs中没有函数错误

来自分类Dev

没有出现函数错误

来自分类Dev

构造函数错误

来自分类Dev

Angular2类构造函数错误:没有Number的提供程序

来自分类Dev

Eclipse osx,没有匹配的构造函数

来自分类Dev

将2D向量传递给使用对象的函数,没有匹配的函数错误

来自分类Dev

c ++构造函数没有匹配的函数

Related 相关文章

热门标签

归档