0
MemoryManager openMemory() {
if (...) {
return memory_manager_instance;
}
else
return NULL;
}
MemoryManager
是用戶定義的C++類的名稱。上面的函數定義給了我標題中的錯誤。無法將'0l'從'long int'轉換爲'MemoryManager'
基本上我不想在條件不成立時返回實例。這樣的函數定義是有效的,我通常在Java中做,但它似乎不適用於C++。我該怎麼做才能解決這個問題?
Java只有指針,這就是爲什麼你可以返回NULL對象。在C++中,您的代碼需要MemoryManager中的轉換構造函數,它不存在或者是顯式的。你可能意思是返回一個指針而不是一個值。也可能需要拋出異常或返回一個默認的初始化對象 - 無法從您的問題中得知。 – 2011-12-13 18:53:32