首先,我不熟悉C++/Qt
,所以我试了一下,因为我会在C#
做...我也有一些问题与指针..“未定义引用”-error /静态成员变种在C + +/Qt
故事:我使用QSerialPort
读取和写入串行232端口。当然,应该只有一个实例,否则会出现访问错误。所以我的想法是定义一个静态成员变量来保存对象。
问题:我总是得到错误 “未定义参考SerialManager::obj
”
的源代码:
serialmanager.h
#include <QSerialPort>
class SerialManager
{
public:
static QSerialPort* getObj();
private:
static QSerialPort* obj;
}
serialmanager.cpp
#include "serialmanager.h"
QSerialPort *obj = new QSerialPort();
QSerialPort* SerialManager::getObj()
{
if(!obj->isOpen())
{
obj->setPortName("/dev/ttyO1"); //error line
obj->setBaudRate(QSerialPort::Baud57600);
//and so on...
}
return obj;
}
您的答案如下。顺便说一句,如果你只需要一个实例,你可以创建一个实例,并摆脱静态变量 – wasthishelpful