我們有一個在它的創作,它創建了一個不同的class BA
對象,它想引用傳遞給自身,像這樣一個class CJ
:無法的「這」的引用傳遞給另一個類的構造函數
BA:BA(const CJ& myCJRef);
編譯器總是與錯誤:
error: uninitialized reference member BA::myCJRef
CJRef
在BA
類如類類型定義CJ
現在金額爲&
,*
或者兩者都不會導致相同的錯誤。由於myCJRef
的初始化需要傳遞兩個其他類,但它將指向錯誤的對象,所以初始化很困難。
我是'C'的傢伙......這是混亂。
謝謝大家!
繼回答以下問題,我到哪裏我用這個指針調用在CJ對象的方法,真正的代碼如下觀點:
InputPoolBufferAdapter :: InputPoolBufferAdapter(CJpsMixerChannel & _CJ,INT抖動, INT maxBuffers,無符號長maxBufferAge):myCJpsMixerChannel(_CJ)
{
myCJpsMixerChannel = _CJ;
myJitter = jitter; // assuming jitter will be the number of floats
myJitterCounter = 0;
myMaxBuffers = maxBuffers;
myMaxBufferAge = maxBufferAge;
myPopulateMetadataRequests = 0;
mySendDataReadyAlert = true;
clearBufferAdapterThreshhold = CLEAR_BUFFER_ADAPTER_THRESHHOLD;
};
void InputPoolBufferAdapter::returnDataBufferToPool (ChannelBuffer_t buf)
{
void CJpsMixerChannel::myCJpsMixerChannel->returnBufferToInputPool(ChannelBuffer_t *returnBuffer_p);
};
void InputPoolBufferAdapter::notifyDataAvailable()
{
void myCJpsMixerChannel.notifyDestinationsDataAvailable(void);
};
void InputPoolBufferAdapter::bufferAdapterError (int a)
{
void &myCJpsMixerChannel.inputBufferAdapterError(int error_code);
};
我試過幾件事情,你可以看到BU t將其不會編譯,所述錯誤是:
InputPoolBufferAdapter.cpp:在成員函數 '虛擬無效InputPoolBufferAdapter :: returnDataBufferToPool(ChannelBuffer_t)': InputPoolBufferAdapter.cpp:33:50:錯誤:前預期初始化「 - > '令牌 InputPoolBufferAdapter.cpp:在成員函數'virtual void InputPoolBufferAdapter :: notifyDataAvailable()'中: InputPoolBufferAdapter.cpp:38:32:錯誤:'。'之前的預期初始化器令牌 InputPoolBufferAdapter.cpp:在成員函數'virtual void InputPoolBufferAdapter :: bufferAdapterError(int)': InputPoolBufferAdapter.cpp:43:32:錯誤:'。'之前的預期初始化器令牌
我對此感到茫然,對於這個不再'混亂',但肯定'迷茫'的軟件傢伙(我不能相信'C'嵌入式系統中的25年後,我不敢相信這讓我如此搞砸了!
感謝所有
你能發佈你的所有代碼嗎?謝謝。 – Tushar
是的,需要看代碼。但是指針而不是引用可能更容易。 – john