对象组合 C++:没有匹配的调用函数
Object Composition C++: no matching function for call
我正在尝试创建一个名为 luminary 的对象。该对象由thermometer对象、memory对象、Led对象组成。最后三个 classes 完全分开工作。但是当我尝试将灯具中的所有东西粘合在一起时 class 我收到了这些消息:
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Thermometer::Thermometer()’
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Memory::Memory()’
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Led::Led()’
luminary头文件代码class:
class Luminary{
public:
//Constructor
Luminary(Led led,Thermometer thermometer,Memory memory);
//Atributes
Led _led;
Thermometer _thermometer;
Memory _memory;
}
cpp 文件代码:
#include "luminary.h"
#include "Led.h"
#include "Thermometer.h"
#include "Memory.h"
//Constructor
Luminary::Luminary(Led led,Thermometer thermometer,Memory memory){
_memory = memory;
_thermometer = thermometer;
_led = led;
}
为什么我会收到这些消息?
根据您的消息来源,Led
、Thermometer
、Memory
必须是默认构造函数,这意味着它们应该有一个默认构造函数,但它们没有。
您可以在此处使用 member initializer list:
Luminary::Luminary(Led led,Thermometer thermometer,Memory memory)
: _led(led), _thermometer(thermometer), _memory(memory) {}
Here 讨论了为什么在大多数情况下,您应该使用初始化列表而不是赋值。
我正在尝试创建一个名为 luminary 的对象。该对象由thermometer对象、memory对象、Led对象组成。最后三个 classes 完全分开工作。但是当我尝试将灯具中的所有东西粘合在一起时 class 我收到了这些消息:
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Thermometer::Thermometer()’
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Memory::Memory()’
luminary.cpp:11:112: 错误:没有匹配函数来调用‘Led::Led()’
luminary头文件代码class:
class Luminary{
public:
//Constructor
Luminary(Led led,Thermometer thermometer,Memory memory);
//Atributes
Led _led;
Thermometer _thermometer;
Memory _memory;
}
cpp 文件代码:
#include "luminary.h"
#include "Led.h"
#include "Thermometer.h"
#include "Memory.h"
//Constructor
Luminary::Luminary(Led led,Thermometer thermometer,Memory memory){
_memory = memory;
_thermometer = thermometer;
_led = led;
}
为什么我会收到这些消息?
根据您的消息来源,Led
、Thermometer
、Memory
必须是默认构造函数,这意味着它们应该有一个默认构造函数,但它们没有。
您可以在此处使用 member initializer list:
Luminary::Luminary(Led led,Thermometer thermometer,Memory memory)
: _led(led), _thermometer(thermometer), _memory(memory) {}
Here 讨论了为什么在大多数情况下,您应该使用初始化列表而不是赋值。