【发布时间】:2019-04-03 23:42:47
【问题描述】:
如何在我的类 (UART) 对象中正确使用类对象 (serial)?
我要复制的类对象在“Private”中声明了它的复制构造函数,我的编译器说:
‘serial::Serial::Serial(const serial::Serial&)’ is private within this context
UART::UART(const serial::Serial& serial_port) : _serial(serial_port), _letter(" ") {}
以及定义
serial::Serial::Serial(const serial::Serial&)
是:
private:
// Disable copy constructors
Serial(const Serial&);
这是我的类头文件:
class UART
{
private:
serial::Serial _serial;
public:
UART(const serial::Serial& serial_port) : _serial(serial_port) {};
~UART();
bool read(std::string &data);
bool write(std::string &data);
};
如您所见,我已经声明了一个名为_serial 的类对象,我只想在UART 类中使用这个对象,我通常通过复制构造方法来做到这一点(将serial 对象传递给UART 并复制)
因此,如果 serial 类不允许复制构造函数(因为它已在私有部分中声明),我该如何复制它(或者可能是其他方法?)并在我的 UART 类中使用此对象?
【问题讨论】:
-
看起来像一个嵌入式(微型)系统。涉及到很多诡计。需要完整定义系列类。串行实例是否放置在内存映射的 io 端口上具有很大的相关性。否则,任何答案都会产生误导。请先提及您的平台(硬件+工具链)。
标签: c++