2015-12-17 40 views
0

我正在使用Arduino library,並對其進行的某個調用有疑問。這個問題涉及到BTD(藍牙設備庫)針對Arduino的USB主機庫的奇怪指針功能

在受保護的變量下的頭文件,它會創建一個指針:

USB *pUsb; 

在CPP:

BTD::BTD(USB *p){ 
    connectToWii(false), 
    pairWithWii(false), 
    connectToHIDDevice(false), 
    pairWithHIDDevice(false), 
    pUsb(p), // Pointer to USB class instance - mandatory 
    /* 
    *Other unrelated Code 
    */ 
} 

我只是想知道pUsb(p)的呼叫是什麼。
對於我的問題的任何問題,我表示歉意,因爲這是我第一次提交到本網站,而我對C++來說還很新。我確實知道java,所以我理解編碼概念,但是我從來沒有在前後一個半小時的研究中發現沒有任何幫助。謝謝您的幫助! KPitt

回答

0

你沒有正確複製的語法,它實際上是

BTD::BTD(USB *p) 
: connectToWii(false), 
    pairWithWii(false), 
    connectToHIDDevice(false), 
    pairWithHIDDevice(false), 
    pUsb(p) // Pointer to USB class instance - mandatory 
{ 
    /* 
    *Other unrelated Code 
    */ 
} 

注意:構造函數體前。這是constructor member initializer list,它正在初始化該類的成員變量。因此,該行

pUsb(p) 

走的是USB*參數p並將其複製到成員變量pUsb。長話短說,它只是複製一個指向其成員變量的指針。

+0

非常感謝!我認爲這可能是它的原因,但找不到任何支持它的地方,對於語法錯誤也很抱歉。 – KPitt45