Xcode 6.3(測試版)給了我新的警告,任何建議如何解決這個問題?我不認爲把這個檢查完全刪除是一個正確的答案,因爲在某些情況下,「相機」已經爲NULL,並在其他地方導致崩潰。如何解決「引用不能綁定到解除引用空指針」警告
在定義明確的C++代碼中引用不能綁定到解除引用的空指針;可以假定比較始終評估爲假
以下是代碼。我還能如何驗證相機存在?
Camera& camera = sceneEngine->camera();
// FIXME: this triggers an undefined-bool-conversion warning in Xcode 6.3 BETA
if (&camera == NULL) return;
而且從SceneEngine相關的方法:
// HEADER
class SceneEngine
{
public:
Camera& camera();
protected:
Camera camera_;
}
// CPP
Camera& SceneEngine::camera() {
return camera_;
}
如果你有一個'相機&',然後將相機存在或您有未定義的行爲。沒有但是。 – immibis 2015-02-24 06:22:31
所以你建議擺脫警告,我應該刪除檢查和處理崩潰(相機爲NULL時)以某種其他方式? – JOM 2015-02-24 06:26:49
引用永遠不應該是NULL,它們總是指向一個實際的對象,除非你像在R Sahu的回答中所證明的那樣在地址0處強制一個對象存在的地方調用未定義的行爲。這個斷言不應該在那裏,或者你應該使用指針來代替。 – Havenard 2015-02-24 06:28:24