首先,我不熟悉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