通过值和指针传递

Passing by value and by pointer

本文关键字:指针      更新时间:2023-10-16

这是一个常见的问题,但是我不能使它工作。

这是函数原型:void QSerialPort::setPort(const QSerialPortInfo &serialPortInfo)我正在尝试使用它,像这样:

QSerialPortInfo *serialPortInfo = new QSerialPortInfo("H");
QSerialPort *SerialPort=new QSerialPort;
SerialPort->setPort( &serialPortInfo); 

正如我在原型中所理解的,我们有对象的引用,但我有一个指向QSerialPortInfo的指针,所以我无论如何我们&这一切都不起作用。

我做错了什么?

QSerialPortInfo不应该动态分配(这不是真正的qt方式,我知道)。

在你的例子中,它应该是SerialPort->setPort(*serialPortInfo),因为你需要解引用你的指针来传递变量。

但是这段代码应该这样写:

QSerialPortInfo serialPortInfo("COM1");
QSerialPort* SerialPort = new QSerialPort;
SerialPort->setPort(serialPortInfo);