gpt4 book ai didi

c++ - 在类中有类对象

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:05 25 4
gpt4 key购买 nike

如何在我的类 (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 类不允许复制构造函数(因为它已在私有(private)部分中声明),我如何复制它(或者可能是其他方法?)并在内部使用此对象我的 UART 类?

最佳答案

how can I copy it

你不能,但你可以移动它(不太可能,从你说的来看,这看起来像 C++11 之前的代码)。

or may be other approach?

要么不复制(例如,保留指针或对它的引用),要么构造一个新的 serial 对象,或者不复制它,而是通过引用/指针将其传递给方法需要它。

关于c++ - 在类中有类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55499050/

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