1. C++中的靜態(tài)成員變量
.h
// 單例指針
static SerialManager *m_instance;
.cpp
// 靜態(tài)成員變量,必須在類外單獨(dú)定義
SerialManager* SerialManager::m_instance = nullptr;
-
靜態(tài)成員變量必須在類外定義
- 在
C++中,類的靜態(tài)成員變量(static成員)必須在類外單獨(dú)定義,否則會(huì)導(dǎo)致鏈接錯(cuò)誤 - 在頭文件中,static SerialManager *m_instance;只是聲明,而不是定義,編譯器不會(huì)為它分配存儲(chǔ)空間。
- 因此,必須在.cpp文件中顯式定義這個(gè)靜態(tài)變量,否則程序運(yùn)行時(shí)會(huì)出現(xiàn)m_instance未定義的錯(cuò)誤
- 在
-
初始化m_instance為nullptr
- =nullptr確保m_instance初始化為空指針,防止未初始化的指針導(dǎo)致未定義行為
- 如果不初始化,m_instance的值可能是隨機(jī)的,導(dǎo)致instance()方法無法正確判斷是否已經(jīng)創(chuàng)建實(shí)例
不允許對(duì)數(shù)組進(jìn)行整體賦值操作,只能使用循環(huán)逐一復(fù)制元素
數(shù)組的地址:
數(shù)組的基地址:數(shù)組開始存儲(chǔ)的物理地址
數(shù)組首元素的基地址:數(shù)組首個(gè)元素開始存儲(chǔ)的物理地址,數(shù)值上總是與數(shù)組基地址相同
&操作符:&a獲得數(shù)組的基地址;&a[0]獲得數(shù)組首元素的基地址
void handleSerialData(const QByteArray &data);
- const:
- 保護(hù)數(shù)據(jù):const確保方法內(nèi)部不能修改data的內(nèi)容,防止意外更改調(diào)用者的數(shù)據(jù)
- 接口明確:向調(diào)用者表明該函數(shù)不會(huì)修改傳入的數(shù)據(jù),增強(qiáng)代碼的可讀性和安全性
- &(引用):
- 避免拷貝:使用引用傳遞可以避免在函數(shù)調(diào)用時(shí)對(duì)QByteArray對(duì)象進(jìn)行拷貝,提高性能,尤其是當(dāng)data較大時(shí)
- 直接操作原數(shù)據(jù):引用允許函數(shù)直接訪問調(diào)用者傳遞的對(duì)象,而不是副本
const QByteArray &data是一種高效且安全的參數(shù)傳遞方式