gpt4 book ai didi

C++ - 错误 : no matching function for call to 'Motor::Motor()'

转载 作者:行者123 更新时间:2023-11-30 02:32:27 24 4
gpt4 key购买 nike

我的代码有问题。

我有两个错误:

拳头错误:

MotorManager.cpp:7: error: no matching function for call to 'Motor::Motor()'

第二个错误:

MotorManager.cpp:10: error: use of deleted function 'Motor& Motor::operator=(Motor&&)'

电机管理器.cpp

#include "MotorManager.h"
#include "Pins.h"
#include "Direction.h"
#include "Motor.h"

MotorManager::MotorManager() {

// Init motors
_motorLeftFront = Motor(MOTOR_FRONT_LEFT_FORWARD, MOTOR_FRONT_LEFT_BACKWARD);
_motorRightFront = Motor(MOTOR_FRONT_RIGHT_FORWARD, MOTOR_FRONT_RIGHT_BACKWARD);
_motorLeftBack = Motor(MOTOR_BACK_LEFT_FORWARD, MOTOR_BACK_LEFT_BACKWARD);
_motorRightBack = Motor(MOTOR_BACK_RIGHT_FORWARD, MOTOR_BACK_RIGHT_BACKWARD);
}

电机管理器.h

#include "Pins.h"
#include "Direction.h"
#include "Motor.h"

class MotorManager {
public:

// Constuctor
MotorManager();
};

电机.cpp

#include "Motor.h"
#include "Direction.h"

Motor::Motor(const int pinForwad, const int pinBackward) : _pinForwad(pinForwad), _pinBackward(pinBackward) {

pinMode(pinForwad, OUTPUT);
pinMode(pinBackward, OUTPUT);
}

电机.h

#include "Direction.h"

class Motor {
public:

// Constructor
Motor(const int pinForwad, const int pinBackward);
private:
//Variables
int _pinForwad;
int _pinBackward;
};

谢谢

最佳答案

当构造MotorManager 实例时,编译器还需要初始化它的所有成员变量。由于成员未在初始化列表中初始化,因此它会尝试调用该类的默认构造函数。由于 Motor 没有默认构造函数,因此会出现错误。

这可以通过初始化初始化列表中的成员变量来解决:

MotorManager::MotorManager()
: _motorLeftFront(MOTOR_FRONT_LEFT_FORWARD, MOTOR_FRONT_LEFT_BACKWARD),
_motorRightFront(MOTOR_FRONT_RIGHT_FORWARD, MOTOR_FRONT_RIGHT_BACKWARD),
_motorLeftBackMOTOR_BACK_LEFT_FORWARD, MOTOR_BACK_LEFT_BACKWARD),
_motorRightBack(MOTOR_BACK_RIGHT_FORWARD, MOTOR_BACK_RIGHT_BACKWARD)
{
}

关于C++ - 错误 : no matching function for call to 'Motor::Motor()' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com