的构造函数必须明确初始化没有默认构造函数的成员 我正在努力解决这个错误,我还在学习煤渣和C++。 有人能帮忙吗。先谢谢你

的构造函数必须明确初始化没有默认构造函数的成员 我正在努力解决这个错误,我还在学习煤渣和C++。 有人能帮忙吗。先谢谢你,c++,cinder,C++,Cinder,错误: “SerialHandler”的构造函数必须明确初始化没有默认构造函数的成员“serial” SerialHandler.h class SerialHandler { public : SerialHandler(){}; // <- error here cinder::Serial serial; // <- void setup(); bool isDone; bool isonline; }; 类序列化处理程序 { 公众: SerialHan

错误: “SerialHandler”的构造函数必须明确初始化没有默认构造函数的成员“serial”

SerialHandler.h

class SerialHandler
{
public :
  SerialHandler(){}; // <- error here
  cinder::Serial serial; // <-
  void setup();
  bool isDone;
  bool isonline;
 };
类序列化处理程序
{
公众:

SerialHandler(){}//这个问题没有从错误消息中所假设的那么简单。
cinder::Serial
有一个受保护的构造函数,因此您甚至不能将
Serial
对象作为类的成员。
Serial::create
是一个静态成员函数,它返回一个
SerialRef
对象(它是指向
串行
实例的共享指针)

因此,您的类声明应该有如下内容:

class SerialHandler {
         ...
    cinder::SerialRef serial;
         ...
};
您的
create
调用
SerialHandler::setup()
应该如下所示:

serial = cinder::Serial::create( dev, 115200);  

您的问题是什么?编译器错误说明一切!您需要使用ctor的初始化列表初始化没有默认ctor的成员(在本例中为
cinder::Serial
)我还在学习煤渣和C++——错误是显而易见的。显示尝试使用框架来学习C++不是一个好主意。谢谢!我正在从错误中学习。
serial = cinder::Serial::create( dev, 115200);